OC語言構造方法


 

OC語言構造方法

一、構造方法

(一)構造方法的調用

完整的創建一個可用的對象: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)子類擁有的成員變量包括自己的成員變量以及從父類繼承而來的成員變量,在重寫構造方法的時候應該首先對從父類繼承而來的成員變量先進行初始化。

(2)原則:先初始化父類的,再初始化子類的。

(3)重寫構造方法的目的:為了讓對象方法一創建出來,成員變量就會有一些固定的值。

(4)注意點#1先調用父類的構造方法[super init]; #2再進行子類內部成員變量的初始化。

 

二、自定義構造方法

(一)自定義構造方法的規范

(1)一定是對象方法,以減號開頭

(2)返回值一般是id類型

(3)方法名一般以initWith開頭

(二)自定義構造方法的代碼實現

Person類的聲明,其中聲明了兩個接收參數的自定義構造方法

 

Person類的實現

Student繼承自Person類,聲明了一個接收三個參數的構造方法

Student類的實現

測試主程序

(三)自定義構造方法的使用注意

(1)自己做自己的事情

(2)父類的方法交給父類的方法來處理,子類的方法處理子類自己獨有的屬性

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM