A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Hi围城 中级黑马   /  2014-3-24 16:38  /  1038 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Hi围城 于 2014-3-24 17:24 编辑
  1. /*
  2. 2> 书
  3. (1)属性
  4. * 书名
  5. * 出版社名称
  6. * 作者(包含姓名和年龄)

  7. (2)方法
  8. * 属性相应的set和get方法

  9. 3> 学生
  10. * 姓名
  11. * 年龄
  12. * 学号
  13. * 书(随身带着一本书)

  14. 2> 方法
  15. * 属性相应的set和get方法
  16. * 设计一个对象方法-study:输出书名
  17. */
  18. #import <Foundation/Foundation.h>
  19. @interface Person : NSObject
  20. {
  21.     NSString *_name;
  22.     int _age;
  23. }
  24. - (void)setStr:(NSString *)name;
  25. - (NSString *)name;
  26. - (void)setAge:(int)age;
  27. - (int)age;
  28. - (void)setAgeWith:(int)age andName:(NSString *)name;
  29. @end
  30. @implementation Person
  31. - (void)setStr:(NSString *)name
  32. {
  33.     _name = name;
  34. }
  35. - (NSString *)name
  36. {
  37.     return _name;
  38. }
  39. - (void)setAge:(int)age
  40. {
  41.     _age = age;
  42. }
  43. - (int)age
  44. {
  45.     return _age;
  46. }
  47. - (void)setAgeWith:(int)age andName:(NSString *)name
  48. {
  49.     _age = age;
  50.     _name = name;
  51. }
  52. @end

  53. @interface Book : NSObject
  54. {
  55.     NSString *_bookName;
  56.     NSString *_prees;
  57.     NSString *_ps;
  58. }
  59. - (void)setBookName:(NSString *)bookName;
  60. - (NSString *)bookName;
  61. - (void)setPrees:(NSString *)prees;
  62. - (NSString *)prees;
  63. - (void)setPs:(NSString *)ps;
  64. - (NSString *)ps;
  65. @end
  66. @implementation Book
  67. - (void)setBookName:(NSString *)bookName
  68. {
  69.     _bookName = bookName;
  70. }
  71. - (NSString *)bookName
  72. {
  73.     return _bookName;
  74. }
  75. - (void)setPrees:(NSString *)prees
  76. {
  77.     _prees = prees;
  78. }
  79. - (NSString *)prees
  80. {
  81.     return _prees;
  82. }
  83. - (void)setPs:(NSString *)ps
  84. {
  85.     _ps = ps;
  86. }
  87. - (NSString *)ps
  88. {
  89.     return _ps;
  90. }
  91. @end

  92. @interface Student : Person
  93. {
  94.     int _number;
  95.     Book *_bk;
  96. }
  97. - (void)setNumber:(int)number;
  98. - (int)number;
  99. - (void)setBk:(Book *)bk;
  100. - (Book *)bk;
  101. - (void)study;
  102. @end
  103. @implementation Student
  104. - (void)setNumber:(int)number
  105. {
  106.     _number = number;
  107. }
  108. - (int)number
  109. {
  110.     return _number;
  111. }
  112. - (void)setBk:(Book *)bk
  113. {
  114.     _bk = bk;
  115. }
  116. - (Book *)bk
  117. {
  118.     return _bk;
  119. }
  120. - (void)study
  121. {
  122.     NSLog(@"%@",[_bk bookName]);
  123. }
  124. @end

  125. int main()
  126. {
  127.     Student *stu = [Student new];
  128.     Book *b = [Book new];
  129.     [b setBookName:@"笑傲江湖"];
  130.     [stu study];
  131.     //如何输出学生的书名?
  132.     return 0;
  133. }
  134. //如何输出学生的书名?
复制代码

2 个回复

倒序浏览
你的代码里里面好像还没有给学生的书赋值吧?就算输出也是个空指针。
应该先给学给学生的书赋值
  1.     [stu setBk:b];// 把你的笑傲江湖这本书给学生
  2.    
  3.     NSLog(@"%@",[[stu bk] bookName]); // 然后才能输出你的书名
  4.     //分解 [stu bk] 返回学生的书这个对象--[[stu bk] bookName] 用书调用bookName方法获得书名
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
Thank you very much!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马