A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
士兵开枪 枪射击子弹
枪类
类名:Gun
属性:型号(_size),子弹个数(_bulletCount)
方法:射击

士兵类
类名:Soldier
属性:姓名(_name),life,level(等级)
方法:跑,蹲 开枪,跳
*/
#import <Foundation/Foundation.h>
#pragma mark 抢类声明
@interface Gun:NSObject
{
    //实例变量
@public;
    NSString *_size;//枪的型号
    int _bulletCount;//子弹数量
}
//行为
-(void)shoot;
@end
#pragma mark 抢类实现
@implementation Gun
-(void)shoot
{
    //每射击一次子弹数量减1
    if (_bulletCount>0) {
        _bulletCount--;
        NSLog(@"%@正在射击,还剩余子弹数%d",_size,_bulletCount);
    }
    else
    {
        NSLog(@"已经没有子弹了");
    }
}
@end

#pragma mark 士兵声明
@interface Soldier:NSObject
{
@public;
    NSString *_name;//士兵姓名
    int _lift;//血量
    int _level;//等级
}
//行为
-(void)fireByGun:(Gun *)gun;
@end
#pragma mark 士兵实现
@implementation Soldier
-(void)fireByGun:(Gun *)gun
{
    [gun shoot];
}
@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];
        gun->_size = @"小米步枪";
        gun->_bulletCount = 3;
        
        //士兵开枪
        [s fireByGun:gun];
    }
    return 0;
}

1 个回复

正序浏览
***自己补充了一下

/*
士兵开枪 枪射击子弹
枪类
类名: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;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马