对象作为参数传递

 

//  对象作为参数传递
//好好感受一下面向对象的思想,枪有射击的功能,士兵使用枪射击,就给士兵一个枪,然后调用枪的射击方法就可以了

#import <Foundation/Foundation.h>

#pragma mark - 枪
////事物名称:枪(Gun)
//属性:弹夹(clip) , 型号(model)
//行为:射击
@interface Gun : NSObject
{
    @public
    int _bullet; // 子弹数
    int _model;
}
- (void)shoot; // 射击
@end

@implementation Gun
- (void)shoot{
    if (_bullet>0) {
        NSLog(@"射击了一次,还剩%i个子弹",--_bullet);
    }
}
@end

#pragma mark - 士兵
//士兵
//事物名称: 士兵(Soldier)
//属性:姓名(name), 身高(height), 体重(weight)
//行为:打枪(fire), 打电话(callPhone)
@interface Soldier : NSObject
{
    @public
    NSString *_name;
    float _height;
    float _weight;
}
- (void)fire:(Gun*)mGun;
- (void)call;
@end

@implementation Soldier

-(void)fire:(Gun *)mGun{
    [mGun shoot];
}

-(void)call{
    NSLog(@"士兵在打电话");
}
@end

int main(int argc, const char * argv[]) {
//    创建士兵对象
    Soldier *ps = [Soldier new];
//    初始化士兵对象
    ps->_name=@"瑞恩";
    ps->_height=1.88;
    ps->_weight=100;
    
//    创建枪对象
    Gun *pg=[Gun new];
//    初始化枪对象
    pg->_bullet=10;
    pg->_model=47;
    
//    调用射击方法
    [ps fire:pg];
    [ps fire:pg];
    [ps fire:pg];
    [ps fire:pg];
    [ps fire:pg];
    
    return 0;
}

 

转载于:https://www.cnblogs.com/imChay/p/5590229.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值