構造方法
在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...