22 oc構造方法基本概念

2022-09-11 06:36:10 字數 1267 閱讀 6011

構造方法

在oc中init開頭的方法, 我們稱之為構造方法

構造方法的用途

構造方法的用途: 用於初始化乙個物件, 讓某個物件一建立出來就擁有某些屬性和值

如何實現構造方法

重寫init方法, 在init方法中初始化成員變數

重寫init方法

重寫init方法必須按照蘋果規定的格式重寫, 如果不按照規定會引發一些未知的錯誤

必須先初始化父類, 再初始化子類

必須判斷父類是否初始化成功, 只有父類初始化成功才能繼續初始化子類

返回當前物件的位址

- (instancetype)init

// 1.初始化父類

// 只要父類初始化成功 , 就會返回對應的位址, 如果初始化失敗, 就會返回nil

// nil == 0 == 假 == 沒有初始化成功

self = [super init];

// 2.判斷父類是否初始化成功

if (self != nil) {

// 3.初始化子類

// 設定屬性的值

_age = 6;

// 4.返回位址

returnself;

注意子類構造方法中一定要使用super呼叫父類的方法

自定義構造方法

自定義構造方法就是自定義乙個init方法

有時候我們需要在建立某個物件的時候,讓物件的某些屬性就具有值,這時候就需要傳入一些引數給物件的屬性,為了滿足這個需求,就需要自定義構造方法

自定義構造方法的格式

一定是物件方法

一定返回id/instancetype

方法名稱一定以init開頭

- (instancetype)initwithage:(int)age;

自定義構造方法在繼承中的表現

自己的事情自己做,屬於誰的屬性就由誰來進行操作

父類的屬**給父類的方法來處理,子類的方法處理子類自己獨有的屬性

自定義構造方法在子類,如何呼叫的父類構造方法的

子類在重寫自定構造方法時,一般使用super呼叫父類的構造方法,先讓父類將父類的屬性進行初始化

- (instancetype)initwithage:(int)age andname:(nsstring *)name andno:(int)no

if (self = [super initwithage:age andname:name]) {

_no = no;

returnself;

OC之訊息基本概念

要說清楚訊息這個話題,我們必須先來了解三個概念 class,sel,imp,它們在 objc objc.h 中定義 typedef struct objc class class typedef struct objc object id typedef struct objc selector s...

建構函式基本概念

建構函式 作用 在物件被建立時使用特定的值構造物件,將物件初始化為乙個特定的初始狀態 要求 函式名 型別名,不能定義返回值型別,也不能有return語句 使用 clock c 實參1,實參2,如果沒有定義建構函式,編譯器將在需要時自動生成乙個預設建構函式,這個預設構造函式引數列表為空,且初始值可能不...

類方法基本概念

在類方法中呼叫本類的類方法可直接呼叫。例項方法也叫做物件方法。類方法是屬於整個類的,而例項方法是屬於類的某個物件的。由於類方法是屬於整個類的,並不屬於類的哪個物件,所以類方法的方法體中不能有與類的物件有關的內容。即類方法體有如下限制 1 類方法中不能引用物件變數 2 類方法中不能呼叫類的物件方法 3...