/*
设计一个”狗“类
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;
}
|
|