構造方法:用來初始化物件的方法,是物件方法
重寫構造方法的目的:為了讓物件建立出來時成員變數就會有一些固定的值
重寫構造方法的注意點 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.注釋內容不占用記憶體,即使新增再多的注釋...