黑马程序员技术交流社区

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

作者: 403295277    时间: 2015-8-27 21:31
标题: 对象作为方法的参数进行传递
/*
    枪类
    名称 Gun
    属性  枪的型号(_size)
    行为  射击(shoot)

    士兵类
    名称  Soldier
    属性  姓名(_name)  生命(_life)  等级(_level)
    行为  开枪(shootByGun)

    子弹类
    名称  Bullet
    属性  子弹个数(_bulletCount)    型号(_model)
*/


#import <Foundation/Foundation.h>
#pragma mark 子弹类的声明
@interface Bullet:NSObject
{
    @public
    int _bulletCount;
    NSString *_model;
}
@end
#pragma mark 子弹类的实现
@implementation Bullet
@end
#pragma mark 枪类的声明
@interface Gun:NSObject
{
    @public
    NSString *_size;
}
-(void)shoot:(Bullet *) bullet;
@end
#pragma mark 枪类的实现
@implementation Gun
-(void)shoot:(Bullet *) bullet{
   
    if (bullet->_bulletCount> 0) {
        
        bullet->_bulletCount --;
        NSLog(@"枪正在射击,子弹还有%d发",bullet->_bulletCount);
    }else{
        NSLog(@"没有子弹了!");
    }
   
}
@end
#pragma mark 士兵类的声明
@interface Soldier:NSObject
{
    @public
    NSString *_name;
    int _level;
    int _life;

}
-(void)shootByGun:(Gun *)gun andBullet:(Bullet *) bullet;
@end
#pragma mark 士兵类的实现
@implementation Soldier
-(void)shootByGun:(Gun *)gun andBullet:(Bullet *) bullet{
    [gun shoot:bullet];
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //创建子弹
        Bullet *bulletOne = [Bullet new];
        bulletOne->_bulletCount = 1;
        //bulletOne->_model = @"九五式手枪的子弹";
        
        //创建枪
        Gun *gunOne = [Gun new];
        //gunOne->_size = @"九五式手枪";
        
        //创建士兵
        Soldier *soldierOne = [Soldier new];
//        soldierOne->_name = @"张三丰";
//        soldierOne->_life = 100;
//        soldierOne->_level =2;
        
        [soldierOne shootByGun:gunOne andBullet:bulletOne];
        [soldierOne shootByGun:gunOne andBullet:bulletOne];
        [soldierOne shootByGun:gunOne andBullet:bulletOne];
        [soldierOne shootByGun:gunOne andBullet:bulletOne];
        NSLog(@"%d",bulletOne->_bulletCount);
        
        ;
        
        
        
    }
    return 0;
}





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