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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

例如要实现以下的功能:
  1. /*

  2. 实现功能: 士兵开枪,枪射击子弹



  3. 枪类:
  4. 名称:Gun
  5. 属性:型号(_size),子弹个数(_bulletCount)
  6. 行为:射击


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

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

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


  16. */
复制代码
求大神指导

评分

参与人数 1黑马币 +10 收起 理由
崔石炫 + 10 赞一个!

查看全部评分

5 个回复

正序浏览
安若曦 发表于 2015-9-11 11:04
我全部看完了OC,现在重新复习和认真写代码昨晚我已经研究出来了,O(∩_∩)O谢谢 ...

好的,会了就成,不客气
回复 使用道具 举报
魏武 发表于 2015-9-11 10:37
代码给你,自己看吧,貌似你没学到分文件开发吧,直接把代码给你整一个文件里了,从上到下依次是子弹类,枪类和 ...

我全部看完了OC,现在重新复习和认真写代码昨晚我已经研究出来了,O(∩_∩)O谢谢
回复 使用道具 举报
代码给你,自己看吧,貌似你没学到分文件开发吧,直接把代码给你整一个文件里了,从上到下依次是子弹类,枪类和士兵类,最后是main函数.看不懂的可以问我
#import <Foundation/Foundation.h>
@interface Bullet : NSObject
@property int bulletCount;
@end
@implementation Bullet
@end
@class Soldier;//防止重复引用
#import"Bullet.h"
@interface Gun : NSObject
@property NSString *size;
-(void)shoot:(Soldier *)soldier andBullet:(Bullet *)bullet;
@end
@implementation Gun
-(void)shoot:(Soldier *)soldier andBullet:(Bullet *)bullet{
    NSLog(@"那个叫%@的士兵正在拿着%@枪向前猛烈射击!当前剩余子弹%d",soldier.name,self.size,bullet.bulletCount);
}
@end
@interface Soldier : NSObject
@property NSString *name;
@property Gun *gun;
@property Bullet *bullet;
-(void)fireByGun;
@end
@implementation Soldier
-(void)fireByGun{
    if(self.bullet.bulletCount>0){
        self.bullet.bulletCount--;
        [_gun shoot: self andBullet: self.bullet];
    }//将俩对象都声明在自己内部
    else{
        NSLog(@"都没子弹了还突突个毛线!");
    }
}
@end
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Gun *gun=[Gun new];
        Soldier *s1=[Soldier new];
        Bullet *b1=[Bullet new];
        b1.bulletCount=5;
        s1.name=@"如意大师";
        gun.size=@"沾有粑粑的M4A1";
        s1.gun=gun;//枪给人
        s1.bullet=b1;//弹夹给人
        [s1 fireByGun];
        [s1 fireByGun];
        [s1 fireByGun];
        [s1 fireByGun];
        [s1 fireByGun];
        [s1 fireByGun];
    }
    return 0;
}
回复 使用道具 举报
毛强 发表于 2015-9-11 08:32
把对象地址作为参数连续传递给两个以上的对象

原来是这样啊,谢谢你
回复 使用道具 举报
把对象地址作为参数连续传递给两个以上的对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马