完整的建立乙個可用的物件:person *p=[person new];
new方法的內部會分別呼叫兩個方法來完成2件事情,
1)使用alloc方法來分配儲存空間(返回分配的物件);
2)使用init方法來對物件進行初始化。
可以把new方法拆開如下:
1.呼叫類方法+alloc分配儲存空間,返回未經初始化的物件
person *p1=[person alloc];
2.呼叫物件方法-init進行初始化,返回物件本身
person *p2=[p1 init];
3.以上兩個過程集成為一句:
person *p=[[person alloc] init];
說明:init方法就是構造方法,是用來初始化物件的方法,注意這是乙個物件方法,一減號開頭。預設初始化完畢後,所有成員變數的值都為0。
需求1,如果我需要讓每個物件建立出來的初始值是10,而不是1,應該怎麼辦呢?
需求2,讓學生繼承人類,要求學生物件初始化之後,年齡是10,學號是1,怎麼辦?
子類擁有的成員變數包括自己的成員變數以及從父類繼承而來的成員變數,在重寫構造方法的時候應該首先對從父類繼承而來的成員變數先進行初始化。
原則:先初始化父類的,再初始化子類的。
重寫構造方法的目的:為了讓物件方法一建立出來,成員變數就會有一些固定的值。
注意點:#1先呼叫父類的構造方法[super init]; #2再進行子類內部成員變數的初始化。
一定是物件方法,以減號開頭
返回值一般是id型別
方法名一般以initwith開頭
person類的宣告,其中宣告了兩個接收引數的自定義構造方法
person類的實現
student繼承自person類,宣告了乙個接收三個引數的構造方法
student類的實現
測試主程式
自己做自己的事情
父類的方法交給父類的方法來處理,子類的方法處理子類自己獨有的屬性
OC語言構造方法
oc語言構造方法 一 構造方法 一 構造方法的呼叫 完整的建立乙個可用的物件 person p person new new方法的內部會分別呼叫兩個方法來完成 2件事情,1 使用 alloc 方法來分配儲存空間 返回分配的物件 2 使用 init 方法來對物件進行初始化。可以把new 方法拆開如下 ...
OC語言 構造方法
一 構造方法 1.什麼是oc構造方法?oc構造方法是用來初始化物件時呼叫的方法,是個物件方法,以 號開頭。2.如果你先建立乙個person類,讓建立後的person類新建立的物件預設的年齡為20歲,該如何處理?重寫構造方法,在重寫的構造方法中對person的成員變數進行賦值。二 物件初始化分析 pe...
OC語言構造方法
oc語言構造方法 一 構造方法 一 構造方法的呼叫 完整的建立乙個可用的物件 person p person new new方法的內部會分別呼叫兩個方法來完成 2件事情,1 使用 alloc 方法來分配儲存空間 返回分配的物件 2 使用 init 方法來對物件進行初始化。可以把new 方法拆開如下 ...