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个对象的方法参数. */
相关文章推荐
- 初来乍到
- mysql的基本操作1
- 2017年亚信笔试测试第一题:判断字符串是否可以连接
- 四大组件之 Activity及其生命周期
- 南阳题目56-阶乘因式分解(一)
- 关于利用css 实现右侧固定 左侧自适应布局的解决方案
- 离散傅里叶变换
- c++犯过的错
- java中volatile 关键字
- java 调用python,shell脚本
- LeetCode133. Clone Graph
- 华硕(苏州)公司校招经验(上)
- IOS中NSLog输出的格式化占位
- js弹出框、对话框、提示框、弹窗总结
- XMPP即时聊天步骤
- 将博客搬至CSDN
- cocos2dx遇到的坑2
- ANDROID系统启动流程分析
- QR code API
- Windows系统下gvim字体和主题设置,显示行号