? 类别是一个类,它是添加了新功能的现有类。
? 使用类别就是为了能够为现有类添加新的方法,不用继承该现有类,就可使用现有类的对象调用添加的方法了。
? 类别可以使类的实现分散在多个文件中
? 类别中不能有变量,类别中没有放变量的位置
? 如果类中的方法和类别中的方法名称相同,这将造成冲突,类别的方法将完全取代类的方法。
? 同一个类的不同类别声明了相同的方法,这将导致不稳定,哪个方法会被调用是不确定的
类别声明:
#import "ClassName.h"
@interface ClassName ( CategoryName )
方法声明
@end
类别实现:
#import "ClassName+CategoryName.h”//声明文件
@implementation ClassName ( CategoryName )
方法实现
@end
实例:
FractionMath.h
#import "Fraction.h"
@interface Fraction (Math)
-(Fraction*) add: (Fraction*) f;
-(Fraction*) mul: (Fraction*) f;
-(Fraction*) div: (Fraction*) f;
-(Fraction*) sub: (Fraction*) f;
@end
FractionMath.m
#import "FractionMath.h"
@implementation Fraction (Math)
-(Fraction*) add: (Fraction*) f {
return [[Fraction alloc] initWithNumerator: numerator * [f denominator] +denominator *
[f numerator] denominator: denominator * [f denominator]];
}
-(Fraction*) mul: (Fraction*) f {
return [[Fraction alloc] initWithNumerator: numerator * [f numerator]
denominator: denominator * [f denominator]];
}
-(Fraction*) div: (Fraction*) f {
return [[Fraction alloc] initWithNumerator: numerator * [f denominator]
denominator: denominator * [f numerator]];
}
-(Fraction*) sub: (Fraction*) f {
return [[Fraction alloc] initWithNumerator: numerator * [f denominator] -denominator * [f numerator]
denominator: denominator * [f denominator]];
}
@end
main.m
#import <stdio.h>
#import "Fraction.h"
#import "FractionMath.h"
int main( int argc, const char *argv[] ) {
// create a new instance
Fraction *frac1 = [[Fraction alloc] initWithNumerator: 1 denominator: 3];
Fraction *frac2 = [[Fraction alloc] initWithNumerator: 2 denominator: 5];
Fraction *frac3 = [frac1 mul: frac2];
[frac1 print];
printf( " * " );
[frac2 print];
printf( " = " );
[frac3 print];
printf( "/n" );
// free memory
[frac1 release];
[frac2 release];
[frac3 release];
return 0;
}
output
1/3 * 2/5 = 2/15
分享到:
相关推荐
这本书对于想快速掌握Objective‐C的人来说是一本相当不错的教材。
Objective‐C是开发Mac软件的主要编程语言。如果你了解一些面向对象的基本概念和 C语言,那么会对你学习Objective‐C有很多帮助,如果你不了解C,那么建议你先读一下 C 指南。
learn Objective-c on the mac 的配套代码!
Objective-C基础教程.pdf(Learn Objective-C on the Mac中文版) 中文扫描版 + 英文电子书 + 源码 该资源在Mac下用BetterZIP压缩,共三个分卷,其他分卷在我的资源中找。 更新: Windows下使用7zip对part1解压...
Scott Knaster-Learn Objective–C on the Mac,学IOS的那本经典初级教程!!!
Objective-C基础教程源代码 Learn objective-C on the Mac
Learn Objective-C on the Mac.pdf
elcome to Learn Objective- C on the Mac! This book is designed to teach you the basics of the Objective- C language. Objective- C is a superset of C and is the language used by many (if not most) ...
Learn Objective-C(中文版)(v2).pdfLearn Objective-C(中文版)(v2).pdfLearn Objective-C(中文版)(v2).pdfLearn Objective-C(中文版)(v2).pdf
关于Objective-C 编程语言的学习著作,Objective-C基础教程英文版第二版.
如果你想迅速掌握Objective-C,并有c++或Java的基础,该文档绝对是你的首选。该文档共13页,全是Objective-C知识的精华,没有在此啰嗦与其他语言相同的部分。
Objective‐C是开发Mac软件的主要编程语言。如果你了解一些面向对象的基本概念和C语言,那么会对你学习Objective‐C有很多帮助,如果你不了解C,那么建议你先读一下C 指南。
Objective-C基础教程.pdf(Learn Objective-C on the Mac中文版) 中文扫描版 + 英文电子书 + 源码 该资源在Mac下用BetterZIP压缩,共三个分卷,其他分卷在我的资源中找。 更新: Windows下使用7zip对part1解压...
中文第二一版和英文第二版 是学习OC最好的书籍 推荐看英文的 因为以后的文档也是英文的 早晚得看
Learn Objective-C(zh)(v2) ios开发文档。
Objective-C基础教程(Learn Objective-C)随书源码下载
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
Learn Objective-C on the Mac eBook.pdf (incl. examples) 含操作图片且包含全实例代码
包括 Objective-C 基础教程 Learn Objective-C on mac 和例子 Learn Objective-C Samples.zip 百度网盘下载