您的位置:首页 > 其它

oc-13-多文件

2016-03-22 20:06 169 查看
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个对象的方法参数.
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: