/*
子弹类
名称:Bullet
属性:子弹个数,型号(_model)
枪类:
名称:Gun
属性:型号(_size),子弹个数(_bulletCount)
行为:射击
士兵类
名称:Soldier
属性:姓名(_name) life level(等级)
行为:开枪
*/
#import <Foundation/Foundation.h>
#pragma mark - 子弹类
//声明了一个子弹类Bullet
@interface Bullet : NSObject
{ @public
//属性:子弹个数,型号(_model)
int _bullerNum;
NSString *_model;
}
@end
@implementation Bullet
@end
#pragma mark - 枪类
//枪类:
//名称:Gun
//声明了一个类
@interface Gun : NSObject
{ @public
NSString *_size;
}
-(void)shoot:(Bullet *)bullet;
@end
//实现这个类
@implementation Gun
-(void)shoot:(Bullet *)bullet{
if (bullet->_bullerNum > 0) {
bullet->_bullerNum--;
NSLog(@"子弹还剩下%d",bullet->_bullerNum);
}else{
NSLog(@"没有子弹了!!!!");
}
}
@end
//行为:射击
#pragma mark - 士兵类
//声明了一个类
@interface Soldier : NSObject
{
NSString *_name;
int _life;
int _level;
// 行为:开枪
}
-(void)kaiGun:(Gun *)gun andBullet:(Bullet *)bullet;
@end
//实现了一个类
@implementation Soldier
-(void)kaiGun:(Gun *)gun andBullet:(Bullet *)bullet{
[gun shoot:bullet];
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Bullet *p = [Bullet new];
p->_bullerNum = 3;
Gun *p1 = [Gun new];
Soldier *p2 = [Soldier new];
[p2 kaiGun:p1 andBullet:p];
[p2 kaiGun:p1 andBullet:p];
[p2 kaiGun:p1 andBullet:p];
[p2 kaiGun:p1 andBullet:p];
[p2 kaiGun:p1 andBullet:p];
}
return 0;
}
怎么是连续调用哦 弄蒙了 |
|