OC基礎 類和物件03

2021-08-02 22:16:08 字數 3150 閱讀 7942

類的定義分為兩個部分.

-> 類的宣告

@inte***ce

類名: nsobject

方法的宣告

;方法表示類的功能.

@end

-> 類的實現

@implementation類名

方法的實現;

@end

類的注意點:

a. 類必須要有宣告和實現

b. 類名用你描述的事物的名稱來命名

類名的每1個單詞的首字母必須要以大寫開頭.

c. 基本上所有的類都需要繼承於nsobject。

d. 用來表示著類事物的共同的特徵的變數必須要定義在@inte***ce的大括弧之中.

e. 定義在大括弧之中用來表示著類事物的共同的特徵的變數我們叫做. 屬性

成員變數

例項變數

欄位.......

f. 為類定義屬性的時候,屬性的名詞必須要以_開頭下劃線開頭.

語法是固定的.

@inte***ce 類名 : nsobect

@end

@implementation 類名

@end

類是無法直接使用的. 如果非要使用這個類的話,就必須要先找到這個類中的1個具體存在,那就是類的物件.

類和物件的關係: 類就是乙個模板,類中有的東西 這個類的物件也有不會多也不會少.物件就可以使用.

物件就是類的乙個具體存在。

語法:  類名 *物件名 =[類名 new];

person *p1 = [person new];

根據person這個類的模板,建立了1個物件名字叫做p1.

p1物件的特點:

-> 可以直接使用.

-> 類中定義的東西這個物件中也有不會多也不會少.

1).預設情況下,物件的屬性是不允許被外界直接訪問的.

如果允許物件的屬性可以被外界訪問,那麼就再宣告屬性的是加1個@public關鍵字.

2).訪問物件的屬性的方式

物件名->屬性名 =值;

物件名->屬性名;

(*物件名).屬性名;

平時使用的時候,使用->

類方法的宣告和實現:

1). 宣告

a. 位置:在@inte***ce的大括弧的外面.

b. 語法: 

- (返回值型別)方法名稱;

- (void)run;

表示宣告了1個無返回值並且無引數的方法方法名字叫做run

2). 實現

a.位置:在@implementation之中實現

b.實現的語法:

將方法的宣告拷貝到@implementation之中.去掉分號追加大括弧1對將方法實現的**寫在大括弧之中.

3).呼叫

a. 方法是無法直接呼叫的.因為類是不能直接使用的.必須要先建立物件.

那麼這個物件中就有類中的屬性和方法了就可以呼叫物件的方法了.

b. 呼叫物件的方法.

[物件名

方法名];

1). 宣告

a.位置:在@inte***ce的大括弧的外面.

b.語法:

- (返回值型別)方法名稱:(引數型別)形參名稱;

- (void)eat:(nsstring *)foodname;

定義了1個方法這個方法沒有返回值.

這個方法的名字叫做eat:

這個方法有1個引數,型別是nsstring *型別的

引數的名字叫做foodname

- (void)eat:(nsstring *)foodname;

void eat(nsstring *foodname);

2). 實現

a.位置:在@implementation之中實現

b.語法:將方法的宣告拷貝到@implementation之中.去掉分號追加大括弧1對將方法實現的**寫在大括弧之中.

3). 呼叫

a. 方法是無法直接呼叫的.因為類是不能直接使用的.必須要先建立物件.

那麼這個物件中就有類中的屬性和方法了就可以呼叫物件的方法了.

b. 呼叫語法:

[物件名

方法名:實參];

方法頭中的資料型別都要用1個小括弧括起來.

- (返回值型別)方法名稱:(引數型別)引數名稱;

1)宣告

a.位置: 在@inte***ce的大括弧的外面.

b. 語法:

- (返回值型別)方法名稱:(引數型別)形參名稱1 :(引數型別)引數名稱2 :(引數型別)引數名稱3;

- (int)sum:(int)num1 :(int)num2;

表示宣告了1個方法這個方法的返回值型別是int型別的.

方法的名稱叫做 sum: :

有兩個引數

引數型別都是int型別

引數名稱叫做num1 num2

2).實現.

a. 位置:在@implementation之中實現

b. 實現的語法: 將方法的宣告拷貝到@implementation之中.去掉分號追加大括弧1對將方法實現的**寫在大括弧之中.

3).呼叫:

a. 方法是無法直接呼叫的.因為類是不能直接使用的.必須要先建立物件.

那麼這個物件中就有類中的屬性和方法了就可以呼叫物件的方法了.

b. 呼叫帶多個引數的語法

[物件名

方法名:實參1 :實參2 :實參3];

1).如果方法只有1個引數.要求最好這個方法的名字叫做***with:

***with***

eatwith:

eatwithfood:

這樣寫的話,那麼呼叫方法的時候看起來就像是1條完整的語句.提高了我們**的閱讀性.

遵守的規範:就是讓我們的方法呼叫的時候看起來像1條完整的語句.

2).如果方法有多個引數建議這個方法名稱:

方法名with:(引數型別)引數名稱and:(引數型別)引數名稱and:(引數型別)引數名稱;

- (int)sumwith:(int)num1 and:(int)num2;

sumwith: and:

更詳細的寫法

方法名with引數1:(引數型別)引數名稱and引數2:(引數型別)引數名稱and引數3:(引數型別)引數名稱;

OC基礎 類和物件

1.oc1 oc是物件導向 關注的是解決問題需要哪些物件。2 和c程式一樣,oc也需要通過編譯和鏈結兩個步驟。終端指令 以main.m為例 編譯 cc c main.m 執行 a.out 3 關鍵字以 開頭,字串以 開頭,其他基本語法 4 和c語言一樣,oc程式的入口依然是main函式。5 nslo...

OC 物件導向,類和物件

面向過程,c語言是一門面向過程語言,關注的是如何解決問題,需要哪些步驟 物件導向,oc是一門物件導向語言,關注的是解決問題需要哪些物件。可以對類進性操作也可以對物件進行操作,即方法,同乙個方法可以應用於不同多個物件。classorinstance method 對類和例項應用方法 inte ce 部...

ios開發之OC基礎 類和物件

本系列的文章主要來自於個人在學習前鋒教育 歐陽堅老師的ios開發教程之oc語言 一定要明確乙個要從事的方向,要不然就會感到迷茫。學習ios開發,並且從事ios開發這個行業,這就是我的選擇。看到我的部落格系列文章,其中大多是關於c qt linux網路程式設計 opengl unity3d等方面。從表...