黑马程序员技术交流社区

标题: 对象作为方法的参数的连续传递 [打印本页]

作者: 小蜗19910109    时间: 2015-10-14 00:33
标题: 对象作为方法的参数的连续传递
#import <Foundation/Foundation.h>
#pragma mark - 子弹类
//子弹类的声明
@interface Bullet:NSObject
{
    @public
    //子弹个数
    int _bulletCount;
   
    //子弹的型号
    NSString *_model;

}
@end

//子弹类的实现
@implementation Bullet
@end


#pragma mark - 枪类
//枪类的声明
@interface Gun:NSObject
{
@public
    //型号
    NSString *_size;
   
}

//行为
-(void)shoot:(Bullet *)bullet;
@end

//枪类的实现
@implementation Gun
//行为
-(void)shoot:(Bullet *)bullet{
   
    //开枪应该做哪些事情?
   
    //如果 子弹的个数 > 0 可以减-1
    if(bullet->_bulletCount>0){
        
        // 1) 子弹数 -1
        bullet->_bulletCount --;  // bullet->_bulletCount = billet->_bulletCount -1;
        // 2) 打印机剩余的子弹数
        NSLog(@"biu biu biu....剩余子弹数:%d",bullet->_bulletCount);
        
    }else{
        
        NSLog(@"都没有子弹了,你还突突个毛线~");
        
    }
   
}
@end


#pragma mark - 士兵类
//士兵类的声明
@interface Soldier:NSObject
{
@public
    //     姓名(_name)
    NSString *_name;
    //    life
    int _life;
    //    level(等级)
    int _level;
   
}

//开枪的行为
//传递了两个参数
// 第一个为:枪
// 第二个为:子弹
-(void)fireByGun:(Gun *)gun andBullet:(Bullet *) bullet;

@end


//士兵类的实现
@implementation Soldier
//开枪的行为
-(void)fireByGun:(Gun *)gun andBullet:(Bullet *)bullet{
   
    //让枪射击
    //把子弹传递给 枪
    [gun shoot:bullet];
   
}

@end


int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //创建大兵
        Soldier *xsd  = [Soldier new];
        xsd->_name = @"许三多";
        
        //创建一个子弹类
        Bullet *bullet = [Bullet new];
        bullet->_bulletCount = 3;
        
        
        //创建一把枪
        Gun *ak47 = [Gun new];
        ak47->_size = @"ak-47";
      
        
        [xsd fireByGun:ak47 andBullet:bullet]; //士兵开枪
        [xsd fireByGun:ak47 andBullet:bullet]; //士兵开枪
        [xsd fireByGun:ak47 andBullet:bullet]; //士兵开枪
        [xsd fireByGun:ak47 andBullet:bullet]; //士兵开枪

        
    }
    return 0;
}

作者: lumangmang    时间: 2015-10-15 11:54
加油!一起努力吧!写的很好啊
作者: 小蜗19910109    时间: 2015-10-15 22:29
lumangmang 发表于 2015-10-15 11:54
加油!一起努力吧!写的很好啊

加油,一起努力!!!!!!!!!
作者: 小蜗19910109    时间: 2015-10-15 22:30
加油,一起努力!!!!!!!!!!!!!!!!!
作者: sclea    时间: 2015-10-15 22:43
注释写的真到位




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