黑馬程式設計師 類的本質

2021-06-27 04:29:15 字數 2413 閱讀 6566

黑馬程式設計師——oc

基礎---

類的本質

------- android培訓

、ios培訓

、期待與您交流! ----------

內容概括:

1、深入介紹類的核心及本質。

2、類的呼叫、輸出及sel

型別。

類的本質:

1、類本身也是個物件,是class

型別的物件,簡稱類物件。

建立過程

1.class建立出

person

類物件。

2.再用

person

類物件建立

person

類的物件。

2、獲取記憶體中的類物件方法,返回的class

物件是同乙個類。

1.class  c  =  [p  class];

2.class  c2  =  [p2  class];

3.class  c3  =  [person  class];

3、設在person

類中有乙個

test

方法,可通過如下方法呼叫。

[person  test]; // 直接呼叫

person *p = [ [person alloc] init]; // 建立乙個類物件後再呼叫。

class c = [p class]; // c就是類物件。

[c, test];

類的載入及輸出:

1、類的載入:當程式啟動時時候,就會載入一次專案中所有的類(也會載入分類),類載入完畢後就會呼叫+load

方法,且只呼叫一次。

2、類的使用:當第一次呼叫這個類時,就會呼叫一次這個類的+initialize

方法(如果有分類,優先呼叫分類的這個方法)。

3、載入順序:先載入父類,再載入子類(先呼叫父類的load

方法,再呼叫子類的

load

方法)。

注意:1.+initialize 監聽類什麼時候被使用。

2.類名就代表類物件,每個類只有乙個類物件。

類的輸出:

可以用nslog

輸出類的所有屬性嗎?那麼又該怎樣輸出。

1、預設情況下,利用nslog和%@

輸出物件時,結果是

<

>。

2、使用nslog

時,即nslog

(@」%@」, p):

1.會呼叫物件平p的

-description

方法。

2.拿到 

- description

方法的返回值(

nsstring *

)顯示到螢幕上。

3.-description方法返回的是「類名 

+ 記憶體位址」,為了輸出物件的所有屬性,要重寫 

- description

方法。

所以類的-description

方法決定類物件的輸出結果。

示例:

+ (nsstring * ) description

int main()

sel型別:(方法的包裝資料型別)

1、方法都以sel

資料型別儲存在類中。

int main()

person *p = [ [person alloc]  init];

[p test2];

上述**呼叫時,內部分為以下三步。

1.把text2

包裝成sel

型別的資料。

2.根據

sel資料找到方法位址。

3.根據方法位址呼叫對應的方法。

呼叫方法的另一種方式。

1、[p performselector : @ selector (test2: withobject 

:引數)];

2、每個方法都有乙個與之對應的sel

資料。

3、根據乙個sel

物件就可以找到方法的位址,進而呼叫方法。

*疑問:本節中方法名的書寫

2、sel物件的建立。

1> sel s = @selector(

test);

2> sel s2 = nssekctorfromstring(@「

test

」);

3> 每個方法內部都有乙個

sel資料

-cmd

,它代表著當前方法。

示例:

#import "person.h"

@implementation person

- (void)test

- (void)test3:(nsstring *)abc

@end

黑馬程式設計師 OC基礎07 類的本質

asp.net unity開發 net培訓 期待與您交流!一 概念 類也是乙個物件,是class型別的物件,簡稱 類物件 類名就代表著類物件,每個類只有乙個類物件。typedef struct objc class class 二 獲取類物件的方式 1 類方法 class c person clas...

黑馬程式設計師 分類以及類的本質研究

asp.net unity開發 net培訓 期待與您交流!更改xcode 模板 category 分類,類別,類目 可以給某乙個類擴充一些方法 不修改原來類的 基本形式 宣告 inte ce 類名 分類名稱 end 實現 implementation 類名 分類名稱 end 示例 不用繼承,不改動p...

黑馬程式設計師 Java String 類

asp.net android ios開發 net培訓 期待與您交流!1 string類 1 字串 多個字元組成的一串資料。2 構造方法 a string s new string b string s new string byte bys c string s new string byte b...