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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小蜗19910109 中级黑马   /  2015-10-14 00:57  /  610 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
设计一个”狗“类
 1> 属性
 * 颜色
 * 速度(单位是m/s)
 * 性别
 * 体重(单位是kg)
 
 2> 行为
 * 吃:每吃一次,体重增加0.5kg,输出吃完后的体重
 * 吠(叫):输出所有的属性
 * 跑:每吃一次,体重减少0.5kg,输出速度和跑完后的体重
 * 比较颜色:跟别的狗比较颜色,如果一样,两个值做减法得零,返回NO(零值),不一样,做减法得到非零值,返回YES(1)
_color   -  dog->_color


 * 比较速度:跟别的狗比较速度,返回速度差(自己的速度 - 其他狗的速度)

_speed   - dog->_speed


*/


#import <Foundation/Foundation.h>

//定义枚举类型  类型名 color
typedef enum color{kColorBlack,kColorWhite,kColorYellow} iColor;
//定义枚举的性别
typedef enum sex{kSexGong,kSexMu,kSexYao} iSex;

#pragma mark - 狗类

//类的声明
@interface Dog:NSObject
{
    @public
    //声明实例变量
    //规范: 一般以下划线开头
//     * 颜色
    iColor _color;   //_color 赋值: kColorBlack, kColorWhite,kColorYellow
//     * 速度(单位是m/s)
    int _speed;
//     * 性别
    iSex _sex;       // kSexGong.....
//     * 体重(单位是kg)
    float _weight;
}

//吃东西的方法
-(void)eat;
//叫
-(void)bark;
//跑
-(void)run;
//和其他的狗比较颜色
//颜色一样 返回 YES
//颜色不一样 返回 NO
// 依据
//    当前自己的  另外一条狗的颜色
//    _color  == dog->_color
-(BOOL)compareColorWithOther:(Dog *)dog;

//和其他狗比较速度
//返回速度差
//    _speed - dog->_speed
-(int)compareSpeedWtihOther:(Dog *)dog;
@end

//类的实现
@implementation Dog
//吃东西的方法
-(void)eat{
   
    //1) 体重+0.5
    _weight += 0.5f;
   
    //2)输出吃完后的体重
    NSLog(@"正在吃东西,_weight = %.2f",_weight);

}
//叫
-(void)bark{


    //1) 把所有的实例变量值都打印出来
    NSLog(@"颜色:%d,体重:%.2f,速度:%d,性别:%d",_color,_weight,_speed,_sex);

}
//跑
-(void)run{

    //1) 体重+0.5
    _weight -= 0.5f;
   
    //2)输出跑完后的体重
    NSLog(@"正在疯跑,_weight = %.2f",_weight);

}
//和其他的狗比较颜色
//颜色一样 返回 YES
//颜色不一样 返回 NO
// 依据
//    当前自己的  另外一条狗的颜色
//    _color  == dog->_color
-(BOOL)compareColorWithOther:(Dog *)dog{

    //拿当前的狗的颜色和另外一条狗的颜色比较
    if(_color == dog->_color){
   
        return YES;
   
    }

    return NO;

}

//和其他狗比较速度
//返回速度差
//    _speed - dog->_speed
-(int)compareSpeedWtihOther:(Dog *)dog{



    return _speed - dog->_speed;

}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //创建一个对象
        Dog *dog = [Dog new];
        //给对象的实例变量赋值
        dog->_color = kColorBlack;
        dog->_sex = kSexGong;
        dog->_speed = 200;
        dog->_weight = 22;
        
        [dog eat];  //22.5
        [dog eat];
        [dog eat];
        
        [dog run];  //狗跑
        
        [dog bark]; //狗叫一次
        
        Dog *byd = [Dog new];
        byd->_color = kColorBlack;
        byd->_sex = kSexGong;
        byd->_speed = 180;
        byd->_weight = 50;
        
        //开始比较狗毛的颜色
       BOOL isYES = [dog compareColorWithOther:byd]; //返回BOOL
        if (isYES) {
            NSLog(@"颜色相同");
            
        }else{
        
             NSLog(@"颜色不同");
        
        }
        
        
        //比较狗的速度
        int num = [dog compareSpeedWtihOther:byd];
        NSLog(@"两条狗的速度差:%d",num);
        
        
        
    }
    return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马