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 = ;
wangcai->_speed = ;
wangcai->_weight = ;
wangcai->_color = ; NSLog(@"wangcaiiiiiii ---> %p",wangcai);
[wangcai bark];
zhangsan->_dog =wangcai;
[zhangsan walkDog]; }
return ;
} 栈区是变量名是对象地址,堆区是对象内存,调用方法的时候是根据方法的地址找的方法。
/**
对象和对象之间的关系
1.组合关系
1台计算机对象由:硬盘对象,内存对象,CPU对象,主板对象,显示器对象等等.
汽车和轮胎 -- 组合关系
体现:整体---局部 2.依赖关系
女孩用手机打电话,是女孩依赖手机.
1个对象作为另外1个对象的方法的参数. 3.关联关系
1个对象作为另外1个对象的成员变量,他们之间不是组合关系.也就是不是整体和部分的关系. 总结:组合关系和关联关系,用法是一样:1个对象作为另外1个对象的成员变量.
组合:整体---局部
关联:不存在必然的关系.
依赖:1个对象作为另外1个对象的方法参数.
*/

oc-13-多文件的更多相关文章

  1. OC方法和文件编译

    OC方法和文件编译 一.OC方法 (一)对象方法 (1)对象方法以-开头如 -(void)xx; (2)对象方法只能又对象来调用 (3)对象方法中可以访问当前对象的成员变量 (4)调用格式   [对象 ...

  2. swift -- 如何在swift下,使用类似oc的pch文件功能

    以前在做oc下的项目的时候,pch文件是必创建的,因为实在是太方便了,只要在build setting里面把pch的路径换成绝对路径,那么剩下的,想干什么就在里面干什么,但是swift下,可以实现这种 ...

  3. [实战]MVC5+EF6+MySql企业网盘实战(13)——编辑文件夹

    写在前面 上篇文章实现了,新建文件夹以及与之前的上传文件的逻辑做了集成,本篇文章将实现编辑文件夹名称,其实这个也有难点,就是编辑文件夹名称时,要考虑文件夹中存在文件或者子文件夹的情况,因为他们的路径已 ...

  4. django 学习-13 Django文件上传

    1..vim blog/views.py from django  import  formsfrom django.http  import HttpResponse  1   2 from dja ...

  5. OC - 13.数据解析(JSON与XML)

    ##数据交互格式 服务器返回给用户的数据,通常是以下两种方式: JSON XML JSON 一种轻量级的数据数据格式,体积比XML小,是服务器返回给移动端通常采用的格式 用使用JSON文件中的数据,需 ...

  6. OC学习15——文件I/O体系

    OC提供了丰富的I/O相关API,如果只是管理文件和目录,程序可以使用NSFileManager进行管理,包括创建.删除.移动和复制文件等:如果程序需要读取文件内容,则可通过NSFileHandle进 ...

  7. python菜鸟教程学习13:文件操作

    读和写文件 open() 将会返回一个 file 对象 open(filename, mode) 不同模式打开文件的完全列表:https://www.runoob.com/python3/python ...

  8. Java 基础【13】 文件(文件夹) 创建和删除

    使用 java.io.file 创建文件(文件夹),算是 java 最基础的知识,但实战项目中还是需要知晓细节. 比如 File 类中的 mkdir() 和 mkdirs() 的区别. JDK API ...

  9. iOS开发 - OC - PCH文件使用

    一. PCH文件的作用 Xcode中,PCH文件在程序编译的时候会自动包含进去.也就是说PCH中的内容是全局的,可以使用在程序的任何地方,通过这个特性,我们可以概括到PCH的作用有以下几个方面: (1 ...

  10. 【C语言学习】《C Primer Plus》第13章 文件输入/输出

    学习总结 1.文件函数原型1: FILE* fopen(char *filename, char *openmode);  //打开文件,返回文件指针 filename:文件名,更确切地说,是包含文件 ...

随机推荐

  1. 加固Samba安全三法

    欢迎大家给我投票: http://2010blog.51cto.com/350944 650) this.width=650;" onclick='window.open("htt ...

  2. ntpdate server时出错原因及解决

    错误1.Server dropped: Strata too high 在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronizati ...

  3. 查看MySql中每个IP的连接数

    要统计数据库的连接数,我们通常情况下是统计总数,没有细分到每个IP上.现在要监控每个IP的连接数,实现方式如下: ) as ip , count(*) from information_schema. ...

  4. C# 获取某月的第一天和最后一天

    /// <summary>        /// 取得某月的第一天        /// </summary>        /// <param name=" ...

  5. Live m3u8播放3个文件自动停止问题

    Live m3u8播放3个文件自动停止问题 1.问题描述 最近做一个转码切片播放测试,使用HLS(HTTP Live Streaming)来做直播, 每个TS分片时间为10s,根据TS分片文件生成以下 ...

  6. Bluetooth in Android 4.2 and 4.3(一):综述

    从Android 4.2开始,Bluetooth stack发生了重大改变:从Bluez换成了由Google和Broadcom联合开发的Bluedroid(当然,核心的部分还是Broadcom的,Go ...

  7. Android系统默认设置

    修改Settings源码,可修改系统设置项,Settings数据被存放于com.android.providers.settings/databases/settings.db中,如果想修改系统启动后 ...

  8. d3d导致cairo不正常

    最近要把cairo集成到项目中,却发现cairo不能工作了 折腾了两天才找到了原因:cairo的一个trick导致浮点数计算错误: http://blog.163.com/lvan100@yeah/b ...

  9. android 动画NineOldAndroid

    NineOldAndroid 1.之前我们用到的第动画是frame和tween动画也就是帧动画,补间动画现在多了一种动画,它包含完了前面动画的所有状态. 属性动画(Property Anmation) ...

  10. (剑指Offer)面试题36:数组中的逆序对

    题目: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 思路: 1.顺序扫描 顺序扫描整个数组,每扫描到一个数字,就将该数 ...