/* 设计一个”狗“类 1> 属性 * 颜色 * 速度(单位是m/s) * 性别 * 体重(单位是kg) 2>行为 * 吃:每吃一次,体重增加0.5kg,输出吃完后的体重 * 吠(叫):输出所有的属性 * 跑:每吃一次,体重减少0.5kg,输出速度和跑完后的体重 * 比较颜色:跟别的狗比较颜色,如果一样,两个值做减法得零,返回NO(零值),不一样, 做减法得到非零值,返回YES(1) * 比较速度:跟别的狗比较速度,返回速度差(自己的速度 - 其他狗的速度) .结合前面的“狗”类,设计一个“人”类 1> 属性 * 姓名 * 狗(养了一条狗) 2> 行为 * 喂狗:每喂一次,狗就会执行“吃”这个行为 * 遛狗:每溜一次,狗就会执行“跑”这个行为
*/ #import <Foundation/Foundation.h> #pragma mark 狗类的定义 typedef enum{KColorwhite,kColorblack,kColoryellow} color; typedef enum{gong,mu,yao} sex; #pragma mark - @interface Dog:NSObject {//狗的实例变量 @public color _color; //狗的体重 double _weight; //狗的性别 sex _sex; //狗的速度 int _speed; } //狗的行为 //体重+0.5 -(void)eat:(NSString *)foodName; //体重-0.5 -(void)run; //打印所以信息 -(void)bark; //比较颜色 -(BOOL)compareColor:(Dog *)dog; //比较速度 -(int)compareSpeed:(Dog *)dog; @end #pragma mark - #pragma mark 狗类的实现 @implementation Dog
//狗的行为 //体重+0.5 -(void)eat:(NSString *)foodName{ _weight+=0.5; NSLog(@"够正在吃%@,体重为%.2f",foodName,_weight); } //体重-0.5 -(void)run{ _weight -=0.5; NSLog(@"跑后体重为%.2f",_weight); } //打印所以信息 -(void)bark{ NSLog(@"颜色:%d,性别:%d,速度:%d,体重:%.2f",_color,_sex,_speed,_weight); } //比较颜色 -(BOOL)compareColor:(Dog *)dog{ //当前狗的 颜色 另一狗的颜色 if (_color == dog->_color) { return YES; }else{ return NO; } } //比较速度 -(int )compareSpeed:(Dog *)dog{ //当前狗的速度-另一狗的 速度 return _speed-dog->_speed; }
@end
#pragma mark - #pragma mark 人定义 @interface Person:NSObject { @public NSString *_name; Dog *_dog; } //行为 //喂狗 -(void)feedDog:(NSString *)foodName; //遛狗 -(void)liuDog; @end
#pragma mark - #pragma mark 人实现 @implementation Person //喂狗 -(void)feedDog:(NSString *)foodName{ //让狗吃东西 [_dog eat:foodName]; } //遛狗 -(void)liuDog{ //让狗跑起来 [_dog run]; } @end
int main(int argc, const char * argv[]) { @autoreleasepool { Dog *d1 = [Dog new]; d1->_speed = 20; d1->_sex = mu; d1->_color = kColorblack; d1->_weight = 50; //创建人的 对象 Person *p = [Person new]; //给人一条狗 p->_dog = d1; NSLog(@"%@",p->_dog); //人要喂狗 [p feedDog:@"吃屎的狗"]; NSLog(@"不忘初心,方得始终!"); } return 0; }
|