思考和实现:
设计一个 狗 类 1> 属性 颜色 速度(单位m/s) 性别 体重(单位kg) 2> 行为 吃: 每吃一次,体重增加0.5kg,输出吃完后的体重 吠(叫): 输出所有的属性 跑: 每跑一次,体重减少0.5kg,输出速度和跑完后的体重 比较颜色:跟别的狗比较颜色,如果一样,两个值做减法得0,返回 NO(零值),不一样减法得非零值,返回YES(1) 比较速度:跟别的狗比速度,返回速度差(当前狗的速度 - 其他狗的速度)
#import <Foundation/Foundation.h>
typedef enum {black,white,red,yellow} Color; typedef enum {male,female} Gender; @interface Dog : NSObject
{ @public int _speed; Gender _gender; Color _color; float _weight; } -(void)eat; -(void)bark:(Dog *) dog; -(void)run:(Dog *) dog; -(int)compareColor:(Dog *) dog1 and:(Dog *) dog2; -(int)compareSpeed:(Dog *) dog1 and:(Dog *) dog2;
@end
@implementation Dog
-(void)eat{
_weight = _weight + 0.5; NSLog(@"吃完后的体重:%.2f kg",_weight); } -(void)bark:(Dog *) dog{
printf("速度:%d 体重:%.2f ",dog->_speed,dog->_weight); switch (dog->_color) { case 0: printf("颜色:黑色 "); break; case 1: printf("颜色:白色 "); break; case 2: printf("颜色:红色 "); break; case 3:m printf("颜色:黄色 "); break; default: printf("您输入的颜色不存在!"); break; } switch (dog->_gender) { case 0: printf("性别:雄性 "); break; case 1: printf("性别:雌性 "); break; default: printf("您输入的性别有误!"); break; } printf("\n"); } -(void)run:(Dog *) dog{
dog->_weight = dog->_weight - 0.5; NSLog(@"跑步后的体重:%.2fkg 跑的速度:%d m/s",dog->_weight,dog->_speed);
} -(int)compareColor:(Dog *) dog1 and:(Dog *) dog2{
int a=dog1->_color - dog2->_color; if (0 == a) { return 0; }else { return 1; } } -(int)compareSpeed:(Dog *) dog1 and:(Dog *) dog2{
int speed = dog1->_speed - dog2->_speed; return speed; }
@end
int main(){
Dog *dog1 = [Dog new]; Dog *dog2 = [Dog new];
dog1->_speed = 100; dog1->_gender = male; dog1->_color = black; dog1->_weight = 65.5;
dog2->_speed = 120; dog2->_gender = female; dog2->_color = red; dog2->_weight = 75.5;
[dog1 eat]; [dog1 bark:dog1]; [dog1 run:dog1];
int _compareColor = [dog1 compareColor:dog1 and:dog2];
int _compareSpeed = [dog1 compareSpeed:dog1 and:dog2];
NSLog(@"颜色对比的返回值:%d 速度对比的返回值:%d",_compareColor,_compareSpeed);
}
|