类的扩展--类目和延展--ios
person+money.h 这是类目类
#import "Person.h"
//这是扩展person类的接口类,独立一个文件
@interface Person (Money)
-(void) haveMoney;
@end
person+money.m 这是类目类
#import "Person+Money.h"
//这是扩展person类的实现类,独立一个文件
@implementation Person (Money)
-(void) haveMoney{
NSLog(@"人人有钱");
}
@end
person.h
#import <Foundation/Foundation.h>
//这是原始类
@interface Person : NSObject
@property(nonatomic,copy) NSString *name;
@property(nonatomic,retain) NSNumber *age;
-(void) originTest;
@end //这是原始类的扩展类,直接定义与原始类同一文件中
@interface Person (Creat)
+(id) personWithName:(NSString *) name;
@end //这是原始类的扩展类,直接定义与原始类同一文件中
@interface Person (Test)
-(void) test;
@end
person.m
#import "Person.h"
//这是person类的实现类
@implementation Person:NSObject -(id) init{
self=[super init];
NSLog(@"调用类自定义的init 方法");
return self;
} +(id) personWithName:(NSString *) name{
Person *person=[[Person alloc] init];
person.name=name;
return person;
}
//这是person类的实现类,直接定义与原始类同一文件中
-(void) test{
NSLog(@"这是类目定义的方法");
} -(void) originTest{
NSLog(@"这是原始类的方法");
}
-(void) haveMoney{
NSLog(@"人人有钱");
}
@end
person_family.h 这是延展的类
#import "Person.h" @interface Person ()
-(void) haveFamily;
@end
main.m
//类目扩展学习
Person *person=[Person personWithName:@"caictou"];
//这是原始类定义的方法
[person originTest];
//这是同一个文件的扩展类定义的方法
[person test];
//这是独立一个文件的扩展类定义的方法
[person haveMoney];
//这是对立一个文件的延展类定义的方法
[person haveFamily];
类的扩展--类目和延展--ios的更多相关文章
- java基础(1)-几种获取类的扩展方式
摘要 在日常开发过程中经常需要获取类的扩展集.即获取类的子类集(抽象类),或者接口实现类.比如说状态模式中,状态构建类,策略模式中的,策略构造方式.本文介绍几种获取方式. 实现 以策略模式为例 定义了 ...
- C#中的扩展类的理解
扩展类是一种静态的一种类的调用方法,通过实例化进行调用.利用this进行指正该类,有参数的时候直接在后面追加参数. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- [Django REST framework - 视图组件之视图基类、视图扩展类、视图子类、视图集]
[Django REST framework - 视图组件之视图基类.视图扩展类.视图子类.视图集] 视图继承关系 详图见文章末尾 视图组件可点我查看 两个视图基类:APIView.GenericAP ...
- Java对象与类—对象与类
1.类 类(class)是构造对象的模板,具体点说类就是对具有相同性质,相同行为的一群对象的抽象说明.由类构造(construst)对象的过程称为创建类的实例(instance). 2.对象 对象是类 ...
- iOS类目、延展和协议
类目:为已知的类增加新的方法:注意:类目里面只能写方法,不能写声明和属性,所以,类目不能作为接口来用 1.类目无法向已有类中添加实例变量.2.如果类目中的方法和已有类中的方法名称冲突时,类目中的方法优 ...
- OC: 类的扩展、类的延展、协议、 NSDate
NSDateFormatter 指定⽇日期格式: NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; [formatter ...
- Objective-C中的类目,延展,协议
Objective-C中的类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛的,瞬间感觉OC好高大上.在其他OOP语言中就没见过这些名词,刚看到这三个名词 ...
- iOS学习19之OC类的扩展
为一个类扩展功能:1.子类化:2.修改源代码:3.定义协议:4.Category:类目 1.Category 1> Category的作用 Category:也叫分类,类目,是为没有源代码的类扩 ...
- object-c中的类目,延展,协议
协议 协议只有方法的声明(类似于其他编程语言的接口) 协议相当于大家都所遵循的 关键字 @protocol 协议名 <所遵循的协议> 默认NSObject @end @pr ...
随机推荐
- 一篇介绍jquery中的ajax的结合
<script type="text/javascript"> function Text_ajax() { $.aja ...
- 关于wait和notify的用法
通常,多线程之间需要协调工作.例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程 downloadThread将该图片下载完毕.如果图片还没有下载完,d ...
- 2016 - 1- 22 NSURLConnetction --- POST请求
一:与上一篇博客中的GET方法类似 只不过需要多注意,如果要改变请求的类型,需要生成NSMutableURLRequest对象才可以设置请求的类型. NSURL *url = [NSURL URLW ...
- GCC,GDB,Makefile和IO复用函数
2015.1.22 c高级的环境搭建:GCC编译器:全称 GNU CC,是GNU工具(tool chain)的一种,源码编译成机器码,gcc的编译依赖于很多小工具4.3.3和3.4.3版本的比较稳定 ...
- iptables配置服务器端口转发
环境: CentOS6.5,192.168.1.10,外网双向通信,绑定域名zlzkj.org: WinServer2008,192.168.1.11,外网不能直接访问到该机器,但ftp.远程桌面.M ...
- VMware与Cisco etherchannel
命令样例: ①把要绑定team的端口添加到channel-group interface Te2/1/1 switchport switchport access vlan 123 switchpor ...
- PE文件格式
以下内容摘录自<加密与解密>: 为了在PE文件中避免有确定的内存地址,出现了相对虚拟地址(RVA)的概念.RVA只是内存中的一个简单的相对于PE文件装入地址的偏移位置.它是一个“相对”地址 ...
- js实现元素添加样式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- twisted 初体验
前言: 最近帮朋友review其模块服务代码, 使用的是python的twisted网络框架. 鉴于之前并没有使用过, 于是决定好好研究一番. 个人接触最早的高性能网络编程框架是Mina, 所谓先入为 ...
- Java 性能优化实战记录(2)---句柄泄漏和监控
前言: Java不存在内存泄漏, 但存在过期引用以及资源泄漏. (个人看法, 请大牛指正) 这边对文件句柄泄漏的场景进行下模拟, 并对此做下简单的分析.如下代码为模拟一个服务进程, 忽略了句柄关闭, ...