黑马程序员技术交流社区
标题:
参数连续传递举例
[打印本页]
作者:
neverbloom7
时间:
2015-8-28 23:48
标题:
参数连续传递举例
#import <Foundation/Foundation.h>
#pragma mark 子弹类的声明
@interface Bullet:NSObject
{
@public
NSString *_size;
int _bulletCount;
}
@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{
//判断子弹数>0
//子弹对象(弹夹)中的子弹的个数
if(bullet->_bulletCount>0){
//子弹数-1
bullet->_bulletCount --;
NSLog(@"啪啪啪...枪在射击...剩余子弹:%d",bullet->_bulletCount);
}else{
//如果子弹数<0 提示没子弹了
NSLog(@"没子弹了,请换子弹");
}
}
@end
#pragma mark 士兵类声明
@interface Soldier:NSObject
{
@public
NSString *_name;
int life;
int level;
// Gun *_gun;
}
//行为
-(void)fireByGun:(Gun *) gun andBullet:(Bullet *)bullet;
@end
#pragma mark 士兵类实现
@implementation Soldier
-(void)fireByGun:(Gun *) gun andBullet:(Bullet *)bullet{
//让枪装上子弹,然后射击
//子弹作为参数传递给射击的方法
[gun shoot:bullet];
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建一个士兵对象
Soldier *s = [Soldier new];
s->_name = @"三多";
s->life = 98;
s->level = 2;
//创建枪的对象
Gun *gun = [Gun new];
gun->_size = @"小米加步枪";
//创建子弹
Bullet *myBullet = [Bullet new];
myBullet->_size = @"5mm口径";
myBullet->_bulletCount = 3;
[s fireByGun:gun andBullet:myBullet];
[s fireByGun:gun andBullet:myBullet];
[s fireByGun:gun andBullet:myBullet];
[s fireByGun:gun andBullet:myBullet];
}
return 0;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2