- 構造方法
1).含義:用來初始化對象的方法,就是構造方法。構造方法是對象方法,以“-”號開頭。
2).創建對象的過程:
a.分配存儲空間,使用NSObject的alloc方法實現,只是返回了存儲空間。如下實例:Person *p1 = [Person alloc];
b.初始化,使用NSObject的init方法對對象進行初始化。如下實例:Person *p2 = [p1 init];
c. 也可以直接使用如下代碼:
d.構造的關鍵是重寫init方法。Person *p3 = [[Person alloc] init]; //整個過程其實就是Person *p = [Person new]
3).重寫init方法
a. 作用:當創建對象時,返回一個特定初始化的值,而不是默認初始化的0.
b. 代碼實例:- (id)init { if(self = [super init]) { _age = 10; } }
4).重寫構造方法的目的:爲了讓對象創建出來,成員變量就有一些固定的值。
5).構造方法的注意點:
a. 先調用父類的構造方法([super init]);
b. 再進行子類內部成員變量的初始化。
6).構造方法的運行原理:
7).自定義構造方法:
a. 作用:創建對象時傳入參數對成員變量進行賦值;
b. 方法聲明:@property int age;
c. 方法實現:
d. 自定義結構規範:-(id)intWithAge:(int)age { if(self = [super init]) { _age = 10; } }
1>一定是對象方法,一定以"-"開頭;
2>返回值一般是id類型;
3>方法名一般以initWith開頭;
4>父類的屬性交給父類的方法去處理,子類方法處理子類自己的屬性。
-
分類(Category)
1).使用場景:給某一個類擴充一些方法(不修改原來類的代碼)。2).分類方法:
a. 聲明:@interface 類名(分類名稱) @end
b. 實現:@implementation類名(分類名稱) @end
3).分類的作用:在不改變原來內容的基礎上,可以爲類增加一些方法。4).使用注意:
1>只能增加方法,不能增加成員變量;
2>分類實現總可以訪問原來類中聲明的成員變量;
3>分類可以重新實現原來類中得方法,但是會覆蓋掉原來的方法,會導致原來的方法失效;
4>分類的優先級最高(最後參與編譯的文件優先級最高),其次是原來的類,再次是父類。5).好處:分模塊開發;給系統自帶的類添加分類。
oc構造方法與分類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.