OC語言構造方法測試
1、構造方法spa
(一)構造方法的調用3d
完整的建立一個可用的對象:Person *p=[Person new];對象
New方法的內部會分別調用兩個方法來完成2件事情,1)使用alloc方法來分配存儲空間(返回分配的對象);2)使用init方法來對對象進行初始化。blog
能夠把new方法拆開以下:繼承
1.調用類方法+alloc分配存儲空間,返回未經初始化的對象it
Person *p1=[person alloc];class
2.調用對象方法-init進行初始化,返回對象自己變量
Person *p2=[p1 init];程序
3.以上兩個過程整合爲一句:
Person *p=[[Person alloc] init];
說明:init方法就是構造方法,是用來初始化對象的方法,注意這是一個對象方法,一減號開頭。默認初始化完畢後,全部成員變量的值都爲0。
(二)構造方法的代碼示例
需求1,若是我須要讓每一個對象建立出來的初始值是10,而不是1,應該怎麼辦呢?
需求2,讓學生繼承人類,要求學生對象初始化以後,年齡是10,學號是1,怎麼辦?
(三)構造方法使用注意
(1)子類擁有的成員變量包括本身的成員變量以及從父類繼承而來的成員變量,在重寫構造方法的時候應該首先對從父類繼承而來的成員變量先進行初始化。
(2)原則:先初始化父類的,再初始化子類的。
(3)重寫構造方法的目的:爲了讓對象方法一建立出來,成員變量就會有一些固定的值。
(4)注意點:#1先調用父類的構造方法[super init]; #2再進行子類內部成員變量的初始化。
2、自定義構造方法
(一)自定義構造方法的規範
(1)必定是對象方法,以減號開頭
(2)返回值通常是id類型
(3)方法名通常以initWith開頭
(二)自定義構造方法的代碼實現
Person類的聲明,其中聲明瞭兩個接收參數的自定義構造方法
Person類的實現
Student繼承自Person類,聲明瞭一個接收三個參數的構造方法
Student類的實現
測試主程序
(三)自定義構造方法的使用注意
(1)本身作本身的事情
(2)父類的方法交給父類的方法來處理,子類的方法處理子類本身獨有的屬性