黑马程序员技术交流社区

标题: oc第一天作业请教下各位. [打印本页]

作者: oxzjsku    时间: 2015-9-10 18:04
标题: oc第一天作业请教下各位.
  1. //  main.m
  2. //  第三题
  3. //3.结合前面的“狗”类,设计一个“人”类
  4. //1> 属性
  5. //* 姓名
  6. //* 狗(养了一条狗)
  7. //2> 行为
  8. //* 喂狗:每喂一次,狗就会执行“吃”这个行为
  9. //* 遛狗:每溜一次,狗就会执行“跑”这个行为
  10. //  Created by mac on 15/9/10.
  11. //  Copyright (c) 2015年 zhy. All rights reserved.
复制代码

请教下各位,属性里面的"狗"怎么定义啊? 还有这题的意思是什么, 是直接打印行为里的话, 还是调用之前那个"狗"类, 还是和C语言的多文件开发一样?
在线等,急~.= =
作者: jx836202365    时间: 2015-9-10 20:47
成员变量是姓名和拥有狗,NSString *_name ;dog _dogName;后面记得把 dog _dog=原来狗对象的狗名字
作者: kylmetz    时间: 2015-9-10 21:37
需要定义两个类,
作者: 安若曦    时间: 2015-9-10 22:55
这样就可以了[code]#pragma mark 人这个类的定义

@interface Person : NSObject
{
    @public
    NSString *_name;
    Dog *_dog;
}
//行为
//喂狗
-(void)feedDog:(NSString *)foodName;
-(void)walkDog;
//遛狗
@end

#pragma mark 人这个类的实现
@implementation Person
-(void)feedDog:(NSString *)foodName{
    //让狗吃东西
    [_dog eat:foodName];
   
}
-(void)walkDog{
    //让狗跑起来
    [_dog run];
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //创建狗对象
        Dog *d1 = [Dog new];
        d1->_speed = 80;
        d1->_weight = 20;
        d1->_sex = kSexMale;
        d1->_color = kColorflower;
      
        //创建一个人的对象
        Person *p = [Person new];
        //给p一个dog
        p->_dog = d1;
        NSLog(@"%@",p->_dog);
        //人要喂狗
        [p feedDog:@"骨头"];
        
        
    }
    return 0;
}


如果你之前已经定义了狗这个类的话,你就可以之间按照我这个写法了,你试试。需要定义两个类,Dog类和Person类的。
在main函数里创建一个Person新对象,给Person一条狗,然后就可以调用方法,打印出来。

作者: 安若曦    时间: 2015-9-10 22:56
  1. //这样就可以了
  2. #pragma mark 人这个类的定义

  3. @interface Person : NSObject
  4. {
  5.     @public
  6.     NSString *_name;
  7.     Dog *_dog;
  8. }
  9. //行为
  10. //喂狗
  11. -(void)feedDog:(NSString *)foodName;
  12. -(void)walkDog;
  13. //遛狗
  14. @end

  15. #pragma mark 人这个类的实现
  16. @implementation Person
  17. -(void)feedDog:(NSString *)foodName{
  18.     //让狗吃东西
  19.     [_dog eat:foodName];
  20.    
  21. }
  22. -(void)walkDog{
  23.     //让狗跑起来
  24.     [_dog run];
  25. }
  26. @end

  27. int main(int argc, const char * argv[]) {
  28.     @autoreleasepool {
  29.         
  30.         //创建狗对象
  31.         Dog *d1 = [Dog new];
  32.         d1->_speed = 80;
  33.         d1->_weight = 20;
  34.         d1->_sex = kSexMale;
  35.         d1->_color = kColorflower;
  36.       
  37.         //创建一个人的对象
  38.         Person *p = [Person new];
  39.         //给p一个dog
  40.         p->_dog = d1;
  41.         NSLog(@"%@",p->_dog);
  42.         //人要喂狗
  43.         [p feedDog:@"骨头"];
  44.         
  45.         
  46.     }
  47.     return 0;
  48. }


  49. 如果你之前已经定义了狗这个类的话,你就可以之间按照我这个写法了,你试试。需要定义两个类,Dog类和Person类的。
  50. 在main函数里创建一个Person新对象,给Person一条狗,然后就可以调用方法,打印出来。
复制代码





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