黑馬程式設計師 Objective C 構造方法

2021-07-02 16:21:08 字數 2071 閱讀 4704

構造方法:用來初始化物件的方法,是物件方法

重寫構造方法的目的:為了讓物件建立出來時成員變數就會有一些固定的值

重寫構造方法的注意點 1.

先呼叫父類的構造方法(

[super init])

2.再進行子類內部成員變數的初始化

建立物件的時候,不要再用new

person *p = [person new];

person *p = [[person alloc] init];

new的作用

完整地建立乙個可用的物件

1.分配儲存空間

呼叫類方法

+alloc

2.初始化呼叫物件方法

-init

1.呼叫+alloc

分配儲存空間

person *p1 = [person alloc];

2.呼叫-init

進行初始化

person *p2 = [p1 init]

person *p = [[person alloc] init]; 重寫

-init方法

1.一定要呼叫回

super

的init

方法:初始化父類中宣告的一些成員變數和其他屬性 2.

如果物件初始化成功,才有必要進行接下來的初始化 3.

返回乙個已經初始化完畢的物件 4.

可以直接重寫實現,應為nsobject中已經有宣告

- (id)init

return self;

}

自定義構造方法的規範 1.

一定是物件方法,一定以 - 開頭 2.

返回值一般是id型別 3.

方法名一般以initwith開頭

父類:person 含有的成員變數是

子類:student 含有成員變數

對於有繼承的類,要求:變數是誰的,就由誰定義

person.h

#import

@inte***ce person : nsobject

@property nsstring *name;

@property int age;

- (id)initwithname:(nsstring *)name andage:(int)age;

@end

person.m

#import "person.h"

@implementation person

- (id)initwithname:(nsstring *)name andage:(int)age

return self;

}@end

student.h

#import "person.h"

@inte***ce student : person

@property int no;

- (id)initwithname:(nsstring *)name andage:(int)age andno:(int)no;

@end

student.m

#import "student.h"

@implementation student

// 父類的屬**給父類方法去處理,子類方法處理子類自己的屬性

- (id)initwithname:(nsstring *)name andage:(int)age andno:(int)no

return self;

}@end

main.m

#import

#import "person.h"

#import "student.h"

int main(int argc, const char * argv)

黑馬程式設計師

asp.net android ios開發 net培訓 期待與您交流!map hashtable 底層是雜湊表資料結構,不可以存入null鍵和null值。該執行緒是同步的,jdk1.0出現,效率低。hashmap 底層是雜湊表資料結構,允許使用null鍵和null值。該集合執行緒是不同步的,將has...

黑馬程式設計師

1.了解反射 反射 就是通過class檔案物件,去使用該檔案中的成員變數,構造方法,成員方法。person p new person p.使用 要想這樣使用,首先你必須得到class檔案物件,其實也就是得到class類的物件。2.反射中的類 class類 成員變數 field類 構造方法 const...

黑馬程式設計師

黑馬程式設計師 j a基礎學習筆記2 一 筆記內容概述 關鍵字 識別符號 注釋 注釋的應用 常量 進製的由來 進製轉換 負數的進製 變數的介紹 變數的基本演示 型別提公升 強制轉換 字元型別運算過程 型別運算細節 算術運算子 賦值運算子。二 常用內容介紹 1.注釋內容不占用記憶體,即使新增再多的注釋...