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 = ;
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-多文件的更多相关文章
- OC方法和文件编译
OC方法和文件编译 一.OC方法 (一)对象方法 (1)对象方法以-开头如 -(void)xx; (2)对象方法只能又对象来调用 (3)对象方法中可以访问当前对象的成员变量 (4)调用格式 [对象 ...
- swift -- 如何在swift下,使用类似oc的pch文件功能
以前在做oc下的项目的时候,pch文件是必创建的,因为实在是太方便了,只要在build setting里面把pch的路径换成绝对路径,那么剩下的,想干什么就在里面干什么,但是swift下,可以实现这种 ...
- [实战]MVC5+EF6+MySql企业网盘实战(13)——编辑文件夹
写在前面 上篇文章实现了,新建文件夹以及与之前的上传文件的逻辑做了集成,本篇文章将实现编辑文件夹名称,其实这个也有难点,就是编辑文件夹名称时,要考虑文件夹中存在文件或者子文件夹的情况,因为他们的路径已 ...
- django 学习-13 Django文件上传
1..vim blog/views.py from django import formsfrom django.http import HttpResponse 1 2 from dja ...
- OC - 13.数据解析(JSON与XML)
##数据交互格式 服务器返回给用户的数据,通常是以下两种方式: JSON XML JSON 一种轻量级的数据数据格式,体积比XML小,是服务器返回给移动端通常采用的格式 用使用JSON文件中的数据,需 ...
- OC学习15——文件I/O体系
OC提供了丰富的I/O相关API,如果只是管理文件和目录,程序可以使用NSFileManager进行管理,包括创建.删除.移动和复制文件等:如果程序需要读取文件内容,则可通过NSFileHandle进 ...
- python菜鸟教程学习13:文件操作
读和写文件 open() 将会返回一个 file 对象 open(filename, mode) 不同模式打开文件的完全列表:https://www.runoob.com/python3/python ...
- Java 基础【13】 文件(文件夹) 创建和删除
使用 java.io.file 创建文件(文件夹),算是 java 最基础的知识,但实战项目中还是需要知晓细节. 比如 File 类中的 mkdir() 和 mkdirs() 的区别. JDK API ...
- iOS开发 - OC - PCH文件使用
一. PCH文件的作用 Xcode中,PCH文件在程序编译的时候会自动包含进去.也就是说PCH中的内容是全局的,可以使用在程序的任何地方,通过这个特性,我们可以概括到PCH的作用有以下几个方面: (1 ...
- 【C语言学习】《C Primer Plus》第13章 文件输入/输出
学习总结 1.文件函数原型1: FILE* fopen(char *filename, char *openmode); //打开文件,返回文件指针 filename:文件名,更确切地说,是包含文件 ...
随机推荐
- 黑马程序员——Foundation中的OC结构体
<span style="font-size:14px">------<a target="_blank" href="http:/ ...
- 设计模式知识搜集(c++)
理解设计模式有两种途径,一种是看UML类图,一种是看代码理解实例,UML(一个简单的介绍)看懂了对理解设计模式大有裨益,代码容易陷进去,因此最好能找到适当且易于理解的应用场景,这下面实际上每个都是我收 ...
- 移动端的日期插件 mobiscroll 2.14.4 破解版
官方报价695美元 http://mobiscroll.com/pricing 这个 mobiscroll 2.14.4 破解版 包括datetime和calendar组件,包括mobiscroll和 ...
- Hbase学习记录(1)|伪分布式安装
概述 Hbase –Haddop Database 是一个高性能,高可靠性.面向列.可伸缩的分布式存储系统. Hbase利用HDFS作为文件存储系统,利用MapReduce来处理Hbase的海量数据, ...
- 移动端和web端前端UI库—Frozen UI、WeUI、SUI Mobile
web http://www.pintuer.com/ 拼图 http://www.h-ui.net/ http://www.layui.com/ 很厉害的一个个人产品 http://amazeui ...
- c# 范型Dictionary实用例子
//定义 public static Dictionary<string, object> dict =new Dictionary<string, object>(); // ...
- <转>linux进程间通信<一>
这篇文章真心不错,只是代码比较久,有些地方需求大家自行修改.先全文转载,以备复习只用.原文链接为:http://www.ibm.com/developerworks/cn/linux/l-ipc/pa ...
- reentrant可重入函数
在多任务操作系统环境中,应用程序的各个任务是并发运行的,所以会经常出现多个任务“同时”调用同一个函数的情况.这里之所以在“同时” 这个词上使用了引号,是因为这个歌”同时“的含义与我们平时所说的同时不是 ...
- .net 配置ueditor
添加引用如下: <script src="../Ueditor/ueditor.config.js" type="text/javascript"> ...
- css3妙用 刷新图标
从猫眼电影看到的一个图标 .geopos i:before { content: ""; width: .8em; height: .8em; border: .14em soli ...