黑马程序员技术交流社区

标题: 昨晚不懂,然后仔细看视频研究了一下 [打印本页]

作者: 安若曦    时间: 2015-9-11 11:09
标题: 昨晚不懂,然后仔细看视频研究了一下
对象作为方法的连续传递,昨晚不怎么理解,然后在朋友的帮助和仔细看老师视频,仔细研究了一下,然后自己也写出了一下代码,虽然花费的时候比较久,但是现在至少是理解了。正在学习的朋友们可以看看,或者大神们看看是不是还有什么我可以改进的。
  1. /*
  2. 枪类:
  3. 名称:Gun
  4. 属性:型号(_size),子弹个数(_bulletCount)
  5. 行为:射击

  6. 人类:
  7. 名称:soldier
  8. 属性:姓名(_name), life level(等级)
  9. 行为:跑,蹲,开枪,跳

  10. 子弹类:
  11. 名称: Bullet
  12. 属性:子弹个数,型号(_model)

  13. //要求士兵在射击的时候不但要给枪, 还要 给一个弹夹  才能射击
  14. //子弹不能为负数

  15. */

  16. #import <Foundation/Foundation.h>

  17. #pragma mark Bullet类的声明
  18. @interface Bullet : NSObject
  19. {
  20.     //实例变量
  21. @public
  22.     //型号
  23.     NSString *_model;
  24.     //子弹数
  25.     int _bulletCount;
  26. }
  27. @end
  28. #pragma mark Bullet类的实现
  29. @implementation Bullet
  30. @end

  31. #pragma mark Gun类的声明
  32. @interface Gun : NSObject
  33. {
  34.     //定义实例变量
  35. @public
  36.     NSString *_size;
  37.     int _bulletCount;
  38. }
  39. //行为
  40. -(void)shoot:(Bullet *)bullet;
  41. @end

  42. #pragma mark Gun类的实现
  43. @implementation Gun
  44. -(void)shoot:(Bullet *)bullet
  45. {
  46.     //判断子弹数>0
  47.     //子弹对象中的子弹个数
  48.     if (bullet->_bulletCount >0) {
  49.         //子弹数 -1
  50.         bullet->_bulletCount --;
  51.         NSLog(@"枪正在射击,还有%d发子弹",bullet->_bulletCount);
  52.     }else{
  53.         //如果子弹 < 0 ,则提示没有子弹,请添加子弹
  54.         NSLog(@"没有子弹了,请添加子弹");
  55.     }
  56. }
  57. @end


  58. #pragma mark Soldier类的声明
  59. @interface Sodier : NSObject
  60. {
  61.     //定义实例变量
  62.     @public
  63.     //姓名(_name)
  64.     NSString *_name;
  65.     //life
  66.     int _life;
  67.     //level(等级)
  68.     int _level;
  69. }
  70. //枪的行为
  71. -(void)fireByGun:(Gun *)gun andBullet:(Bullet *)bullet;
  72. @end

  73. #pragma mark Soldier类的实现
  74. @implementation Sodier
  75. -(void)fireByGun:(Gun *)gun andBullet:(Bullet *)bullet
  76. {
  77.     //让枪装上子弹后射击
  78.     //子弹作为参数传递给射击的方法
  79.     [gun shoot:bullet];
  80. }
  81. @end




  82. int main(int argc, const char * argv[]) {
  83.     @autoreleasepool {
  84.         
  85.         //创建一个士兵对象
  86.         Sodier *s = [Sodier new];
  87.         s->_name = @"三多";
  88.         s->_life = 100;
  89.         s->_level =8;
  90.         
  91.         
  92.         //创建枪的对象
  93.         Gun *gun = [Gun new];
  94.         gun->_size = @"小米加步枪";
  95.         gun->_bulletCount = 3;
  96.         
  97.         //创建子弹类的对象
  98.         Bullet *myBullet = [Bullet new];
  99.         myBullet->_model = @"5mm口径";
  100.         myBullet->_bulletCount = 3;
  101.         
  102.         [s fireByGun:gun andBullet:myBullet];
  103.         [s fireByGun:gun andBullet:myBullet];
  104.         [s fireByGun:gun andBullet:myBullet];
  105.         [s fireByGun:gun andBullet:myBullet];
  106.         
  107.         
  108.     }
  109.     return 0;
  110. }
复制代码



作者: 毛强    时间: 2015-9-12 09:23
请问你的代码是怎么发布的,好规范呢,就像编辑器上写的一样,还可以点击复制呢?
作者: 安若曦    时间: 2015-9-12 09:27
毛强 发表于 2015-9-12 09:23
请问你的代码是怎么发布的,好规范呢,就像编辑器上写的一样,还可以点击复制呢? ...

可以插入代码的,就是在选择字体这一栏有一对尖括号,点击就可以插入你想插入的代码
作者: 毛强    时间: 2015-9-12 09:44
安若曦 发表于 2015-9-12 09:27
可以插入代码的,就是在选择字体这一栏有一对尖括号,点击就可以插入你想插入的代码 ...

NSLog(@"谢谢");
作者: 安若曦    时间: 2015-9-12 09:50
毛强 发表于 2015-9-12 09:44
NSLog(@"谢谢");

哈哈,互相学习吗,不客气的
作者: 荣荣    时间: 2015-9-13 06:11
楼主是个很用心的人,加油!
作者: Judyisapunk    时间: 2015-9-13 07:05
妹纸加油
作者: bdw9005    时间: 2015-9-13 09:58
妹子看似不是很眼熟,不过怎么学习的进度差不多呢
作者: 0826iOS_sunzhen    时间: 2015-9-13 10:02
很不错,这个代码我今天有必要敲一下,依赖关系
作者: 安若曦    时间: 2015-9-13 21:10
0826iOS_sunzhen 发表于 2015-9-13 10:02
很不错,这个代码我今天有必要敲一下,依赖关系

经常敲敲,就更加熟悉了
作者: 安若曦    时间: 2015-9-13 21:11
bdw9005 发表于 2015-9-13 09:58
妹子看似不是很眼熟,不过怎么学习的进度差不多呢

自己在家瞎学了一个月,现在准备申请入学考试,所以才来论坛转
作者: 安若曦    时间: 2015-9-13 21:13
Judyisapunk 发表于 2015-9-13 07:05
妹纸加油

谢谢,我会加油的,一定要进黑马学习
作者: 安若曦    时间: 2015-9-13 21:14
荣荣 发表于 2015-9-13 06:11
楼主是个很用心的人,加油!

谢谢鼓励!
作者: bdw9005    时间: 2015-9-14 00:01
安若曦 发表于 2015-9-13 21:11
自己在家瞎学了一个月,现在准备申请入学考试,所以才来论坛转

很棒啊,在家里我都不大学的进去,向你学习
作者: fangshiqi    时间: 2015-9-14 00:26
昨天写的,现在竟然忘了。。楼主总结的真细,致敬。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2