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:文件名,更确切地说,是包含文件 ...
随机推荐
- LeetCode(7) - Reverse Integer
题目的要求就是要反转一个Integer,例如输入123,则输出321,这一题比较tricky的地方就是它有可能越界,就是说1234567899,反过来是9987654321是一个越界的Integer, ...
- Maven 包命令
1.必须选中项目,然后单击Run As,选择Maven build. 2.在配置窗体中的Goals栏填写clean package. 注意:Installed JREs中配置的JREs的位置必须是JD ...
- NServiceBus教程-持久化配置
当配置在NServiceBus v5持久性,秩序是非常重要的.最后赢得持久性配置选项.我们看看一些例子. 示例1 在本例中最后一个配置选项将会覆盖前面的所有选项. v5.2 v5.0 编辑 var c ...
- 在Spring MVC中使用注解的方式校验RequestParams
概述 Spring MVC支持Bean Validation,通过这个验证技术,可以通过注解方式,很方便的对输入参数进行验证,之前使用的校验方式,都是基于Bean对象的,但是在@RequestPa ...
- HDU ACM 3177 Crixalis's Equipment
Crixalis's Equipment Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- 一起学习 微服务(MicroServices)-笔记
笔记 微服务特性: 1. 小 专注与做一件事(适合团队就是最好的) 2. 松耦合 独立部署 3. 进程独立 4. 轻量级通信机制 实践: 1. 微服务周边的一系列基础建设 Load Balancing ...
- Spark RDD概念学习系列之RDD的缺点(二)
RDD的缺点? RDD是Spark最基本也是最根本的数据抽象,它具备像MapReduce等数据流模型的容错性,并且允许开发人员在大型集群上执行基于内存的计算. 为了有效地实现容错,(详细见ht ...
- 使用avalon 实现一个订座系统
avalon对交互非常复杂的WEB应用具有天然的优势,它拥有两大神器:计算属性(这相当于后端WPF的DependencyProperty)与$watch回调. 我们的订餐系统的要求如下,它有一个总额统 ...
- hdoj 5391 Zball in Tina Town
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5391 相关数论结论: 威尔逊定理——当且仅当p为素数时:( p -1 )! ≡ p-1 ( mod p ...
- 【转】android onNewIntent()触发机制及注意事项
一.onNewIntent() 在IntentActivity中重写下列方法:onCreate onStart onRestart onResume onPause onStop onDestro ...