黑马程序员技术交流社区
标题:
又一个关于OC组合的问题
[打印本页]
作者:
Hi围城
时间:
2014-3-24 16:38
标题:
又一个关于OC组合的问题
本帖最后由 Hi围城 于 2014-3-24 17:24 编辑
/*
2> 书
(1)属性
* 书名
* 出版社名称
* 作者(包含姓名和年龄)
(2)方法
* 属性相应的set和get方法
3> 学生
* 姓名
* 年龄
* 学号
* 书(随身带着一本书)
2> 方法
* 属性相应的set和get方法
* 设计一个对象方法-study:输出书名
*/
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
NSString *_name;
int _age;
}
- (void)setStr:(NSString *)name;
- (NSString *)name;
- (void)setAge:(int)age;
- (int)age;
- (void)setAgeWith:(int)age andName:(NSString *)name;
@end
@implementation Person
- (void)setStr:(NSString *)name
{
_name = name;
}
- (NSString *)name
{
return _name;
}
- (void)setAge:(int)age
{
_age = age;
}
- (int)age
{
return _age;
}
- (void)setAgeWith:(int)age andName:(NSString *)name
{
_age = age;
_name = name;
}
@end
@interface Book : NSObject
{
NSString *_bookName;
NSString *_prees;
NSString *_ps;
}
- (void)setBookName:(NSString *)bookName;
- (NSString *)bookName;
- (void)setPrees:(NSString *)prees;
- (NSString *)prees;
- (void)setPs:(NSString *)ps;
- (NSString *)ps;
@end
@implementation Book
- (void)setBookName:(NSString *)bookName
{
_bookName = bookName;
}
- (NSString *)bookName
{
return _bookName;
}
- (void)setPrees:(NSString *)prees
{
_prees = prees;
}
- (NSString *)prees
{
return _prees;
}
- (void)setPs:(NSString *)ps
{
_ps = ps;
}
- (NSString *)ps
{
return _ps;
}
@end
@interface Student : Person
{
int _number;
Book *_bk;
}
- (void)setNumber:(int)number;
- (int)number;
- (void)setBk:(Book *)bk;
- (Book *)bk;
- (void)study;
@end
@implementation Student
- (void)setNumber:(int)number
{
_number = number;
}
- (int)number
{
return _number;
}
- (void)setBk:(Book *)bk
{
_bk = bk;
}
- (Book *)bk
{
return _bk;
}
- (void)study
{
NSLog(@"%@",[_bk bookName]);
}
@end
int main()
{
Student *stu = [Student new];
Book *b = [Book new];
[b setBookName:@"笑傲江湖"];
[stu study];
//如何输出学生的书名?
return 0;
}
//如何输出学生的书名?
复制代码
作者:
脸皮猴
时间:
2014-3-24 16:58
你的代码里里面好像还没有给学生的书赋值吧?就算输出也是个空指针。
应该先给学给学生的书赋值
[stu setBk:b];// 把你的笑傲江湖这本书给学生
NSLog(@"%@",[[stu bk] bookName]); // 然后才能输出你的书名
//分解 [stu bk] 返回学生的书这个对象--[[stu bk] bookName] 用书调用bookName方法获得书名
复制代码
作者:
Hi围城
时间:
2014-3-24 17:23
Thank you very much!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2