黑马程序员技术交流社区

标题: 思考与实现:狗的属性与行为 [打印本页]

作者: bdw9005    时间: 2015-9-10 09:07
标题: 思考与实现:狗的属性与行为
设计一个”狗“类
1> 属性
* 颜色
* 速度(单位是m/s)
* 性别
* 体重(单位是kg)

2>行为
* 吃:每吃一次,体重增加0.5kg,输出吃完后的体重
* 吠(叫):输出所有的属性
* 跑:每吃一次,体重减少0.5kg,输出速度和跑完后的体重
* 比较颜色:跟别的狗比较颜色,如果一样,两个值做减法得零,返回NO(零值),不一样,
做减法得到非零值,返回YES(1)
* 比较速度:跟别的狗比较速度,返回速度差(自己的速度 - 其他狗的速度)

  1. #import <Foundation/Foundation.h>
  2. //写一个狗的类
  3. // 类名:Dog
  4. // 实例变量  _color _speed _sex _weight
  5. // 行为: eat jiao run compareColor compareSpeed
  6. @interface Dog:NSObject
  7. {
  8.     @public
  9.     //数据类型 _实例变量名
  10.      NSString * _color;
  11.     int _speed;
  12.     NSString * _sex;
  13.     float _weight;
  14. }
  15. //方法声明(无参 有参)
  16. -(float)eat;
  17. -(void)jiao;
  18. -(float)run;
  19. //-(BOOL)compareColor:(NSString*)otherColor;
  20. -(int)compareSpeed:(int )otherSpeed;
  21. @end

  22. @implementation Dog
  23. //方法名
  24. -(float)eat{
  25.     _weight+=0.5;
  26.     return _weight;
  27. }
  28. -(void)jiao{
  29.     NSLog(@"我的颜色是%@,速度是%d,性别是%@,体重%.2f",_color,_speed,_sex,_weight);
  30. }
  31. -(float)run{
  32.     _weight-=0.5;
  33.     return _weight;
  34. }
  35. -(BOOL)compareColor:(NSString *)otherColor{
  36.    
  37.     //if(_color isEqualTo otherColor){
  38.     if(_color == otherColor){
  39.         return 0;
  40.     }else
  41.     return 1;
  42. }
  43. -(int)compareSpeed:(int )otherSpeed{
  44.    
  45.     return _speed-otherSpeed;
  46. }
  47. @end
  48. int main(){
  49.     @autoreleasepool {
  50.         Dog *dog=[Dog new];
  51.         dog->_speed=20;
  52.         dog->_weight=30;
  53.         dog->_color=@"green";
  54.         dog->_sex=@"mother";
  55.         [dog eat];
  56.         NSLog(@"wo吃东西了,我的体重%.2f",dog->_weight);
  57.         [dog run];
  58.         NSLog(@"wo运动了,我的体重%.2f",dog->_weight);
  59.         [dog jiao];
  60.         bool cp=[dog compareColor:@"black"];
  61.         NSLog(@"我的yanse:%@,比较结果wei:%d",dog->_color,cp);
  62.         int cS=[dog compareSpeed:10];
  63.         
  64.         NSLog(@"速度差=%d",cS);
  65.     }
  66. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2