对象作为方法的参数

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------



  对象作为方法的参数

 弹夹类

 类名:Clip

 属性:子弹个数,型号(_model)

 

 枪类:

 名称:Gun

 属性:型号(_size),子弹个数(_bulletCount)

 行为:射击(shoot)

 

 士兵类

 名称:Soldier

 属性:姓名(_name)  生命(_life)  等级(_level)

 行为:开枪(fireByGun:)

 

 */


#import <Foundation/Foundation.h>

/*

 弹夹类

 类名:Clip

 属性:子弹个数,型号(_model)

 */

//弹夹类的声明

#pragma mark 弹夹类的声明

@interface Clip : NSObject

{

    @public

    int _bulletCount; //子弹个数

    NSString *_model; //子弹型号

}


@end

#pragma mark 弹夹类的实现

//弹夹类的实现

@implementation Clip


@end

/*

枪类:

名称:Gun

属性:型号(_size),子弹个数(_bulletCount)

行为:射击(shoot)

 */

#pragma mark 枪类的声明

//枪类的声明

@interface Gun : NSObject

{

    @public

    NSString *_size;//枪的型号

  

}

//射击方法的声明

- (void)shoot:(Clip *)clip;

@end

#pragma mark 枪类射击方法的实现

//射击方法的实现

@implementation Gun


- (void)shoot:(Clip *)clip

{   //如果子弹个数>0打印

    if(clip -> _bulletCount>0){

        clip -> _bulletCount--;

        NSLog(@"东关大队刘秘书用%@ 正在突突突的射击,剩余子弹:%d",_size,clip -> _bulletCount);

    }else{

        NSLog(@"子弹都没了,你还突突个毛啊,赶紧跑,子弹剩余个数%d",clip -> _bulletCount);

    }

}

@end

/*

士兵类

名称:Soldier

属性:姓名(_name)  生命(_life)  等级(_level)

行为:开枪(fireByGun:)

*/


#pragma mark 士兵类的声明

//士兵类的声明

@interface Soldier : NSObject

{

    @public

    NSString *_name;//姓名

    int _life;      //生命

    int _level;     //等级

}

- (void)fireByGun:(Gun *)gun andClip:(Clip *)clip;

@end


#pragma mark 士兵类开枪方法的实现

@implementation Soldier

//士兵开枪方法的实现

- (void)fireByGun:(Gun *)gun andClip:(Clip *)clip

{

    [gun shoot:clip];

}

@end

#pragma mark main函数

int main(int argc, const char * argv[]) {

    

    //创建一个弹夹类的对象

    Clip *c = [Clip new];

    //给弹夹类的实例变量赋值

    c -> _bulletCount = 5;

    c -> _model = @"5mm口径";

    

  

    //创建一个枪类的对象

    Gun *g = [Gun new];

    g -> _size = @"AK47";

    

    //创建一个士兵类的对象

    Soldier *s = [Soldier new];

    s -> _name = @"嘎子";

    s -> _life = 100;

    s -> _level = 3;

    

    //调用开枪的方法

    [s fireByGun:g andClip:c];

    [s fireByGun:g andClip:c];

    [s fireByGun:g andClip:c];

    [s fireByGun:g andClip:c];

    [s fireByGun:g andClip:c];

    [s fireByGun:g andClip:c];

    return 0;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值