***自己补充了一下
/*
士兵开枪 枪射击子弹
枪类
类名:Gun
属性:型号(_size),子弹个数(_bulletCount)
方法:射击
士兵类
类名:Soldier
属性:姓名(_name),life,level(等级)
方法:跑,蹲 开枪,跳
子弹类
类名:Bullet
属性:子弹数(bulletCount),型号(_size)
*/
#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
{
//每射击一次子弹数量减1
if (bullet->_bulletCount>0) {
bullet->_bulletCount--;
NSLog(@"%@正在射击,还剩余子弹数%d",bullet->_size,bullet->_bulletCount);
}
else
{
NSLog(@"已经没有子弹了");
}
}
@end
#pragma mark 士兵声明
@interface Soldier:NSObject
{
@public;
NSString *_name;//士兵姓名
int _lift;//血量
int _level;//等级
}
//行为
-(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 {
// insert code here...
//创建一个士兵
Soldier *s = [Soldier new];
s->_name = @"三多";
s->_lift = 99;
s->_level =3;
//创建抢的对象
Gun *gun = [Gun new];
//创建子弹类
Bullet *myBullet = [Bullet new];
myBullet->_size = @"xiaomi";
myBullet->_bulletCount = 3;
//士兵开枪
[s fireByGun:gun andBullet:myBullet];
}
return 0;
}
|