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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. //
  2. //  main.m
  3. //  practice
  4. //
  5. //  Created by Sunshine_yang on 1/25/16.
  6. //  Copyright (c) 2016 sunshine-429. All rights reserved.
  7. //
  8. /*

  9. 设计一个”狗“类
  10.  1> 属性
  11.  * 颜色
  12.  * 速度(单位是m/s)
  13.  * 性别
  14.  * 体重(单位是kg)
  15.  
  16.  2> 行为
  17.  * 吃:每吃一次,体重增加0.5kg,输出吃完后的体重
  18.  * 吠(叫):输出所有的属性
  19.  * 跑:每吃一次,体重减少0.5kg,输出速度和跑完后的体重
  20.  * 比较颜色:跟别的狗比较颜色,如果一样,两个值做减法得零,返回NO(零值),不一样,做减法得到非零值,返回YES(1)
  21.  * 比较速度:跟别的狗比较速度,返回速度差(自己的速度 - 其他狗的速度)


  22. */
  23. #import <Foundation/Foundation.h>
  24. // 狗的颜色
  25. typedef enum{Black, White, Bicolor}DogColor;

  26. // 狗的性别
  27. typedef enum{Man, Women} DOgSex;

  28. #pragma mark 狗的声明
  29. @interface Dog:NSObject
  30. {
  31.     @public
  32.     // 属性
  33.     DogColor _color;
  34.     DOgSex _sex;
  35.     int _speed; // 速度(单位是m/s)
  36.     float _weight; // 体重(单位是kg)
  37. }

  38. // 行为
  39.     // 吃
  40. -(void)eat:(NSString *) foodName;

  41.     // 叫
  42. -(void)bark;

  43.     // 跑
  44. -(void)run;

  45.     // 比较颜色
  46. -(BOOL)isCompareColor:(Dog *) dog;

  47.     // 比较速度
  48. -(int)isCompareSpeed:(Dog *)dog;
  49. @end

  50. #pragma mark 狗的实现
  51. @implementation Dog
  52. // 吃
  53. -(void)eat:(NSString *) foodName{
  54.     _weight += 0.5f;
  55.     NSLog(@"吃完%@后的体重为%.1fkg", foodName, _weight);

  56. }

  57. // 叫
  58. -(void)bark{
  59.     NSLog(@"狗的颜色是%d\t性别是%d\t速度是%dm/s\t体重是%.1fkg", _color, _sex, _speed, _weight);

  60. }

  61. // 跑
  62. -(void)run{
  63.     _weight -= 0.5f;
  64.     NSLog(@"当前速度为%dm/s\t跑完后的体重为%.1fkg", _speed, _weight);

  65. }

  66. // 比较颜色
  67. -(BOOL)isCompareColor:(Dog *) dog{
  68.     if(_color == dog->_color)
  69.     {
  70.         return NO;
  71.     }
  72.     return YES;
  73. }

  74. // 比较速度
  75. -(int)isCompareSpeed:(Dog *)dog{

  76.     return _speed - dog->_speed;
  77. }
  78. @end


  79. int main(int argc, const char * argv[]) {
  80.     @autoreleasepool {
  81.        // 狗的创建
  82.         Dog *d1 = [Dog new];
  83.         d1->_sex = Women;
  84.         d1->_color = Bicolor;
  85.         d1->_speed = 30;
  86.         d1->_weight = 20.2f;
  87.         
  88.         Dog *d2 = [Dog new];
  89.         d2->_sex = Man;
  90.         d2->_color = Bicolor;
  91.         d2->_speed = 12;
  92.         d2->_weight = 45.5f;
  93.         
  94.         // 方法的调用
  95.         
  96.         [d1 bark];
  97.         [d1 eat:@"小粑粑"];
  98.         [d1 run];
  99.         
  100.         [d2 bark];
  101.         [d2 eat:@"小粑粑"];
  102.         [d2 run];
  103.         
  104.         
  105.         NSLog(@"%d", [d1 isCompareColor:d2]);
  106.         NSLog(@"速度差为%d", [d1 isCompareSpeed:d2]);
  107.         
  108.         NSLog(@"%d", [d2 isCompareColor:d1]);
  109.         NSLog(@"速度差为%d", [d2 isCompareSpeed:d1]);
  110.     }
  111.     return 0;
  112. }

















复制代码

1 个回复

倒序浏览
点赞点赞......
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马