標籤:
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: NSObject2 -(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) n11 {12 numerator = n;13 }14 –(void) setDenominator: (int) d15 {16 denominator = d;17 }
OC就是這樣通過
[email protected]
[email protected]
3.[mycar start];
完成了方法的建立,以及調用。
以上主要參照Programming in Objective-C 6th Edition的內容,進入了個人的學習,如有錯漏,煩請指正。
Objective-C初探【2】之Classes, Objects, and Methods