Classes, Objects, and Methods
下面学习的Object-c中的类,对象以及方法。
Objective-c作为一个面向对象的语言,其中最基础的就是Object.Object之名,就是对象,也就是一样东西。
就现实生活为例,我们的车子是一个对象,它有自己的属性(颜色、牌子等),自己的方法(启动,转左右等)。
言归正传,在OC中,假如我们定义了一个对象为mycar,当我们需要使用其start和turn方法时,如下使用:
无参数方法 | 带参数方法 | |
Objective-c写法 | [mycar start]; | [mycar start:left]; |
java写法 | mycar.start(); | mycar.turn(left); |
有了上诉的对象方法的调用方式,但是我们还少了对象方法的定义。Objective-c中是如何定义一个类呢?
需要通过两个关键的@interface和@implementation部分
interface和implementation共同代表一个类,两者的组合相当于java中的class。
下面用一个构造分数的类来说明一下:
@interface部分相当于接口部分,列出类中将会用到的方法(print、setNumerator,setDenominator)--- 制造了一个模具
-(void) print; OC中方法会以“-”打头,表明这一个方法,紧跟后面(void) 代表的是返回值,最后就是方法的名称print。
-(void) setNumerator:(int)n; 当见方法中使用":",表明这个方法是带有参数的。(int)参数类型是整形,参数名称为n。
1 @interface Fraction: NSObject 2 -(void) print; 3 -(void) setNumerator: (int) n; 4 -(void) setDenominator: (int) d; 5 @end
@implementation部分相当于实现部分,重写了接口的所有的方法 -- 以模具为模板,具体的实现
1 @implementation Fraction 2 { 3 int numerator; 4 int denominator; 5 } 6 –(void) print 7 { 8 NSLog (@"%i/%i", numerator, denominator); 9 } 10 –(void) setNumerator: (int) n 11 { 12 numerator = n; 13 } 14 –(void) setDenominator: (int) d 15 { 16 denominator = d; 17 }
OC就是这样通过
[email protected]
[email protected]
3.[mycar start];
完成了方法的创建,以及调用。
以上主要参照Programming in Objective-C 6th Edition的内容,进入了个人的学习,如有错漏,烦请指正。