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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. #import <Foundation/Foundation.h>
  2. typedef enum dogclore{white,block,yello,green,purble,gold}Se;
  3. typedef enum dogsex{male,female}xb;
  4. //定义一个狗类(类的声明)
  5. @interface Dog:NSObject
  6. {
  7.   //类的属性
  8.     @public     
  9.     Se   _clore;
  10.     int  _speed;
  11.     xb   _sex;
  12.     float  _weight;

  13. }
  14. //类的行为
  15. -(void)eat:(NSString *)food;//有参函数的声明
  16. -(void)bark;//无参函数的声明
  17. -(void)run;
  18. -(BOOL)fclore:(Dog *)sclore;
  19. -(int)walk:(Dog *)speed;
  20. @end



  21. //类的实现
  22. @implementation Dog
  23. -(void)eat:(NSString *)food{
  24.     _weight+=0.5;
  25.     NSLog(@"%.2f",_weight);

  26. }
  27. -(void)bark{

  28.     NSLog(@"颜色:%d速度:%d性别:%d体重%.2f",_clore,_speed,_sex,_weight);

  29. }
  30. -(void)run{

  31.     _weight-=0.5;
  32.     NSLog(@"速度:%d,体重:%.2f",_speed,_weight);

  33. }
  34. -(BOOL)fclore:(Dog *)sclore{      
  35.     if(_clore==sclore->_clore){
  36.         return YES;
  37.     }else{
  38.         return NO;
  39.     }
  40.    
  41. }
  42. -(int)walk:(Dog *)speed{
  43.    
  44.     return _speed-speed->_speed;


  45. }
  46. @end
  47. int main(int argc, const char * argv[]) {
  48.     @autoreleasepool {
  49.         // 创建一个对象
  50.         Dog  *p=[Dog  new];
  51.         //访问实体变量
  52.         p -> _clore=block;
  53.         p -> _speed=60;
  54.         p -> _sex=male;
  55.         p -> _weight=12.4f;
  56.         
  57.         //再创建一个对象
  58.         Dog *p1=[Dog  new];
  59.         p1 -> _clore=white;
  60.         p1 -> _speed = 45;
  61.         //方法的调用
  62.         [p eat:@"狗在吃香肠"];
  63.         [p bark];
  64.         [p run];
  65.         BOOL str=[p fclore:p1];
  66.         int n=[p walk:p1];
  67.         NSLog(@"%d   %d",str,n);
  68.         
  69.         NSLog(@"%d",p1->_clore);
  70.         
  71.     }
  72.     return 0;
  73. }
复制代码

评分

参与人数 1黑马币 +20 收起 理由
何志祥 + 20 赞一个!

查看全部评分

4 个回复

倒序浏览
-(int)walk:(Dog *)speed{          return _speed-speed->_speed;}求文字详解。。。。
回复 使用道具 举报
-(int)walk:(Dog *)speed{//speed是传入过来的Dog类对象的别名
    // _speed是类的属性
    return _speed-speed->_speed;
return       _speed(现在这只狗的速度)      -(减去)              speed->_speed(传入过来这只狗对象,它的速度);

}
其实这个方法是想比较现在这只狗和另外一只狗(作为对象类型的变量传过来)的速度,用减法表示的
这个方法传过来的Dog形参名叫speed,不太好理解,最好是改名叫anotherDog,这样就方便理解了。
回复 使用道具 举报
lixj1991 发表于 2015-9-9 14:27
-(int)walk:(Dog *)speed{//speed是传入过来的Dog类对象的别名
    // _speed是类的属性
    return _speed ...

哇哦,原来是这个样子,谢谢你的回帖
回复 使用道具 举报
哦哦哦哦哦哦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马