zoukankan      html  css  js  c++  java
  • oc-13-多文件

    Dog.h
    #import <Foundation/Foundation.h>
    
    @interface Dog : NSObject
    {
    @public
        NSString *_name;
        int _color;
        int _speed;
        int _sex;
        float _weight;
        
    }
    
    - (void)eat;
    - (void)bark;
    - (void)run;
    - (BOOL)cmpColor:(Dog *)otherDog;
    - (int)cmpSpeed:(Dog *)otherDog;
    @end
    Dog.m
    #import "Dog.h"
    
    @implementation Dog
    - (void)eat{
        _weight +=0.5;
        NSLog(@" %@ 在吃 shi  吃完之后 体重为 %.2f",_name,_weight);
        
    }
    
    - (void)bark{
        NSLog(@" 汪  name = %@  ,颜色= %d ,速度 =%d , 体重 %.2f  性别 %d" ,_name,_color,_speed,_weight,_sex);
    }
    
    - (void)run{
        _weight -=0.5;
        NSLog(@" ssss ss  %@ ",_name);
        NSLog(@"speed = %d , 体重= %.2f",_speed,_weight);
    }
    
    - (BOOL)cmpColor:(Dog *)otherDog{
        if (_color == otherDog->_color) {
            return YES ;
        }else{
            return NO;
        }
    }
    
    - (int)cmpSpeed:(Dog *)otherDog{
        
        return _speed - otherDog->_speed;
    }
    @end
    Person.h
    #import <Foundation/Foundation.h>
    
    #import "Dog.h"
    
    @interface Person : NSObject
    {
    @public
        NSString *_name;//名字属性
        Dog * _dog;// 狗属性
    }
    
    - (void)feedDogWith:(NSString *)foodName;
    - (void)walkDog;
    @end
    Person.m
    #import "Person.h"
    
    @implementation Person
    
    - (void)feedDogWith:(NSString *)foodName{
        NSLog(@" %@ 在喂狗吃 %@ ",_name,foodName);
        [_dog eat];
    }
    //遛狗:每溜一次,狗就会执行“跑”这个行为
    - (void)walkDog{
        NSLog(@" %@ 在遛狗 ",_name);
         NSLog(@" _dog ===%p ",_dog);
        [_dog run];
        
    }
    @end
    main.m
    #import <Foundation/Foundation.h>
    //#import "Dog.h"
    #import "Person.h"
    /*
      多文件步骤 
       1. 把声明 放在 .h文件里面    把实现放在.m文件里面   文件名是类名
       2. 目的 提高程序的可读性.
     */
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            
            Person *zhangsan = [Person new];
            zhangsan->_name = @"张三";
          
            Dog *wangcai = [Dog new];
            wangcai->_name = @"旺财";
            wangcai->_sex = 1;
            wangcai->_speed = 90;
            wangcai->_weight = 500;
            wangcai->_color = 5 ;
            
            NSLog(@"wangcaiiiiiii ---> %p",wangcai);
            [wangcai bark];
            zhangsan->_dog =wangcai;
            [zhangsan walkDog];
            
        }
        return 0;
    }
    
     栈区是变量名是对象地址,堆区是对象内存,调用方法的时候是根据方法的地址找的方法。
    /**
     对象和对象之间的关系
     1.组合关系
     1台计算机对象由:硬盘对象,内存对象,CPU对象,主板对象,显示器对象等等.
     汽车和轮胎 -- 组合关系 
     体现:整体---局部
     
     2.依赖关系
     女孩用手机打电话,是女孩依赖手机.
     1个对象作为另外1个对象的方法的参数.
     
     3.关联关系
     1个对象作为另外1个对象的成员变量,他们之间不是组合关系.也就是不是整体和部分的关系.
     
     总结:组合关系和关联关系,用法是一样:1个对象作为另外1个对象的成员变量.
         组合:整体---局部
         关联:不存在必然的关系.
         依赖:1个对象作为另外1个对象的方法参数.
     */
  • 相关阅读:
    USB HID Report Descriptor 报告描述符详解
    USB 管道 && 端点
    USB描述符解析-->枚举.
    USB HID介绍
    USB2.0速度识别
    spring core
    好妈妈【第三章】一生受用的品格教育,不止孩子需要,父母也需要。
    好妈妈【第二章】把学习做成轻松的事,父母如何提升孩子的学习成绩
    好妈妈【第一章】提高爱的质量,小学前的儿童教育
    Java日志系统
  • 原文地址:https://www.cnblogs.com/yaowen/p/5308246.html
Copyright © 2011-2022 走看看