OC類和C一樣,需要有聲明和定義,先上一段OC代碼

下面是聲明一個類
@interface - @end
@interface 用來聲明一個類,和java裡的class關鍵字類似 @end 使用@interface聲明一個類,必須以@end結尾,表示類聲明結束
People
People是類名
NSObject
NSObject是父類,People類要繼承NSObject類,繼承使用冒号“:”
{}
在類聲明的子產品 花括号裡面 用來聲明 成員變量 花括号外面 用來聲明 成員方法
@public
共有類型,和java類型,不必多說了,隻不過在OC裡邊,要在前面加上“@” 并且,我們設定一個類型以後,後面的成員如果沒有再給出類型,則都預設是設定前面的類型。
-
- (void)write; 成員方法前面加一個“-”(減号),是OC的文法,沒有為什麼,隻要是OC對象的方法,就必須以減号“-”開頭。
()
OC裡的資料類型,必須使用小括号括起來,沒有為什麼
@implementation - @end
使用@implementation - @end的部分,表示這部分是類的實作,必須以@end結束,表示類的實作的結束
- (void)write{}
實作聲明的方法,在{}裡實作具體的内容
Java的類沒有聲明的一說法,隻有C才有聲明 他們代碼類似這樣
Java
OC
在OC中,想要執行什麼行為,調用什麼方法,必須寫在[]内 格式如下:
那麼,OC建立一個對象的代碼大概就是下面的樣子:
*p
有C語言基礎的都知道,*p是一個指針,指針就是一個位址,他指向的就是我們記憶體當中建立的People對象,C裡面所有對對象的操作,都必須通過指針,有了指針,就等于擷取到了記憶體中的對象。
new
用來建立對象的行為,沒有為什麼,固定寫法,就好比Java裡建立對象也一定要使用new關鍵字一樣。
差別大概是下面的樣子:
People people = new People();
People *p = [People new];
直接擷取到對象
擷取到對象的指針
前面已經說過,OC對象的操作,必須要通過指針 那麼,通路成員變量大概要這樣寫:
people.age = 26;
p->age = 26;
直接使用對象,通過“.”擷取成員變量
使用指針擷取成員變量
調用方法,與建立對象是一個道理,建立對象我們是調用對象的new行為來擷取建立對象的指針 代碼大概是下面的樣子:
p
p是我們建立對象的指針,因為OC操作對象必須要用指針,是以這裡的行為執行者是p,write是我們要執行的行為,也就是方法,這樣就實作了使用指針調用方法。
people.write();
[p write];
直接使用對象,通過“.”調用方法
使用指針調用成員方法