黑馬程式設計師 OC學習之類的深入研究

2021-09-30 11:58:00 字數 3199 閱讀 4141

---------------------- asp.net+unity開發、.net培訓、期待與您交流! ----------------------

前言:oc中類其實也是乙個物件,這個物件為class型別。當程式執行時,會先給類物件分配一塊記憶體,程式會自動呼叫相關方法讓我們監聽動作。

一、+ (void)load:當程式第一次執行時,會載入專案中所有的類,當類載入完畢後會呼叫+load方法。

例如:

#import @inte***ce person : nsobject

@end

@implementation person

+ (void)load

@end

@inte***ce student : person

@end

@implementation student

+ (void)load

@end

@inte***ce person(j)

@end

@implementation person (j)

+ (void)load

@end

int main()

注意:load順序為先載入父類,再載入子類,最後載入分類。

----------------------------------------------------------------------------------------------------------------------------------------------------------

二、+ (void) initialize:類物件的初始化方法,當第一次使用類時,會呼叫這個方法。

例如:

#import @inte***ce person : nsobject

@end

@implementation person

+ (void)initialize

@end

@inte***ce student : person

@end

@implementation student

+ (void)initialize

@end

@inte***ce person(j)

@end

@implementation person (j)

+ (void)initialize

@end

int main()

注意:如果該類的分類也重寫了initialize方法,那麼就不會呼叫本類的方法,而載入該分類的方法。

----------------------------------------------------------------------------------------------------------------------------------------------------------

三、description

1、- (nsstring *)description:物件方法。配合nslog並重寫該方法可以一次性輸出物件的所有資訊。

我們知道,nslog中列印乙個oc物件用%@。

例如:

#import @inte***ce person : nsobject

@property(nonatomic,assign)int age;

@property(nonatomic,retain)nsstring *name;

@end

@implementation person

- (nsstring *)description

@end

int main()

----------------------------------------------------------------------------------------------------------------------------------------------------------

2、+ (nsstring *)description:物件方法,功能同上,區別在於列印輸出類的資訊

例如:

#import @inte***ce person : nsobject

@property(nonatomic,assign)int age;

@property(nonatomic,retain)nsstring *name;

@end

@implementation person

+ (nsstring *)description

@end

int main()

注意:不要在description裡面輸出self,因為會無限呼叫,引發死迴圈。

---------------------- asp.net+unity開發、.net培訓、期待與您交流! ----------------------詳細請檢視:www.itheima.com

黑馬程式設計師 OC學習之類和物件

1 物件導向和面向過程 物件導向和面向過程是程式設計的兩種思考方式。物件導向,簡稱oop,它是以事物為中心,參與事件的事物是核心,完成事件只是事物的乙個小任務。面向過程,簡稱opp,它是以事件為中心,事件是核心,列出了完成事件的每乙個步驟,一步一步完成。也就是物件導向側重於從問題在尋找客體 客體的作...

黑馬程式設計師 OC之類和物件

類 類是抽象的 物件 物件是具體 ios培訓 android培訓 期待與您交流!1 設計乙個類的步驟 1 類名,2 屬性,3 行為 功能 1 擁有相同屬性和行為的類都可以抽象出乙個類 2 設計乙個植物大戰殭屍中的殭屍 1 類名 zoombie 2 屬性 life speed gongjili 3 行...

黑馬程式設計師 OC學習之類的繼承和多型

我們都知道,物件導向程式設計中的類有三大特性 繼承,封裝,多型。今天主要總結一下繼承和多型。程式的世界和人類的 物件 世界在思想上是沒有設麼區別的,富二代繼承了父母,自然就擁有了父母擁有的所有資源,子類繼承了父類同樣就擁有了父類所有的方法和屬性 成員變數 繼承是類中的乙個重要的特性,他的出現使得我們...