OC之構造方法

2021-06-28 16:02:38 字數 1929 閱讀 6436

一、構造方法

(一)構造方法的呼叫

完整的建立乙個可用的物件: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)父類的方法交給父類的方法來處理,子類的方法處理子類自己獨有的屬性

oc構造方法

一 構造方法的呼叫 完整的建立乙個可用的物件 person p person new new方法的內部會分別呼叫兩個方法來完成 2件事情,1 使用 alloc 方法來分配儲存空間 返回分配的物件 2 使用 init 方法來對物件進行初始化。可以把new 方法拆開如下 1.呼叫類方法 alloc 分配...

oc構造方法

主題 exam self 是訊息傳送者,不要簡單理解為物件 self super init if self return self 下圖為isa截圖 在物件處打一斷點可到如下內容,isa是指標,指向類方法 void setage等 在init構造實現賦值和輸出 需要有賦值方法和輸出方法 例如 set...

oc構造方法

在oc中init開頭的方法,我們稱之為構造方法 構造方法的用途 用於初始化乙個物件,讓某個物件一建立出來就擁有某些屬性和值 int main int argc,const char argv person.m day14 created by xiaomage on 15 6 23.import p...