oc 一个例子 对象作为参数 连续的传递
实现功能:士兵开枪 枪射击子弹 子弹类 名称:Bullet 属性:子弹个数,型号(_model)
枪类: 名称:Gun 属性:型号(_size),子弹个数(_bulletCount) 行为:射击
人类 名称:Soldier 属性:姓名(_name) life level(等级) 行为:跑 蹲 开枪 跳
#import <Foundation/Foundation.h> #pragma mark 子弹类的声明 @interface Bullet:NSObject {
@public int _bulletCount; //子弹的个数 NSString *_size; //子弹的型号
} @end
#pragma mark 子弹类的实现 @implementation Bullet
@end
#pragma mark 枪类的声明 @interface Gun:NSObject { @public NSString *_size; //枪的型号
// int _bulletCount; //枪的子弹数 } //枪射击的时候,需要子弹 -(void)shoot:(Bullet *) bullet; @end
#pragma mark 枪类的实现 @implementation Gun
-(void)shoot:(Bullet *) bullet{
//如果子弹的个数>0再减1 //<=0提示没子弹 if(bullet->_bulletCount >0){ bullet->_bulletCount -= 1; NSLog(@"用%@开始 biubiu .... 枪在射击!剩余子弹:%d",_size,bullet->_bulletCount); }else{ NSLog(@"没子弹了,请上子弹!\n"); }
}
@end #pragma mark soldier类的声明 @interface Soldier:NSObject { @public int _life; //生命值 int _level; //级别 NSString *_name; //姓名
}
-(void)run; //跑 -(void)jump; //跳 -(void)dun; //蹲 -(void)fireByGun:(Gun*) gun; //开火
@end #pragma mark soldier类的实现 @implementation Soldier -(void)run{
NSLog(@"大兵正在跑");
} //跑 -(void)jump{
NSLog(@"大兵正在跳");
} //跳 -(void)dun{
NSLog(@"大兵蹲下了");
} //蹲 -(void)fireByGun:(Gun*) gun andBullet:(Bullet *)bullet{
//大兵让枪开火 [gun shoot:bullet];
} //开火 @end
int main(int argc, const char * argv[]) { @autoreleasepool {
//创建大兵 Soldier *soldier = [Soldier new]; soldier->_name = @"赵四"; soldier->_life = 34; soldier->_level = 5;
//创建一把枪 Gun *gun = [Gun new]; gun->_size = @"小米加步枪";
//创建一个子弹类 Bullet *bullet = [Bullet new]; bullet->_bulletCount = 3; bullet->_size = @"1cm";
//大兵开枪 [soldier fireByGun:gun andBullet:bullet]; [soldier fireByGun:gun andBullet:bullet]; [soldier fireByGun:gun andBullet:bullet]; [soldier fireByGun:gun andBullet:bullet];
} return 0; }
|