一.構造方法
1呼叫+alloc分配儲存空間
person *p = [person alloc]
2初始化 -init
person *p1 = [p init];
//可以集成為一句
person * p2 = [[person alloc] init];
3如果有一些特殊需要,例如建立出來的物件是乙個特定值,可以重寫init方法,進行初始化
(id)init
精簡版的重寫init方法
- (id)init
return self;
}
構造方法
首先會呼叫父類的構造方法[super init],
再進行子類內部成員變數的初始化。
當父類中有擁有成員變數,子類需要增加成員變數的時候,只需要更改子類的init方法就可以達到
4.自定義構造方法:
- (void)initwithname:(nsstring *)name andage:(int)age andno:(int)no
{// 父類中的name和age留給父類初始化,這裡只初始化自己
if( self =[super initwithname:name andage:age] )
return self;
}
二.分類 :category
1.分類依賴於類,不改變原來類的模式下,給原來類擴充方法,不修改原來類的**。
#import "person.h" // 給person這個類增加方法必須包含person的標頭檔案// @inte***ce 類名(分類名稱)
@inte***ce person (sy)
注意點:
分類不能增加成員變數,只能增加方法。
呼叫方法時,優先去分類中找,然後再去父類中找。
分類會重新實現原來類中的方法,覆蓋原來方法,導致原來方法無法使用。
分類-》原來類-》父類
練習:給nsstring擴充乙個類方法,計算某個字串阿拉伯數字
+ (int)numbercountofstring:(nsstring *)str
}return count;
}
給nsstring擴充乙個物件方法,計算某個字串阿拉伯數字
-(int)numbercount
}return count;
}
呼叫方法:
int count = [@"sjja123kadjkh213" numbercount]; // 計算數字個數
類的本質也是物件,是乙個class型別的物件,簡稱類物件
獲取記憶體中了類物件
class c = [p class];
另一種獲取記憶體中的類物件
class c1 = [person class];
2.類的load方法
在類被載入的時候呼叫+load方法,不管你使用不使用,它都會載入。分類中也會載入這個方法
@implementation person
+(void)load
@end
3.類的initialize方法
當第一次使用這個類的時候,就會呼叫一次當前類的+initialize方法
+(void)initialize
先載入父類再載入子類,先初始化父類,再初始化子類(先呼叫父類的+initialize方法,再呼叫子類的+initialize方法)
4.description方法
這種情況下,首先會呼叫p的-description方法的返回值(nsstring *)顯示到螢幕上。
所以要重寫description方法
// 決定了類物件輸出結果
- (nsstring *)description三.nslog的輸出補充
person *p =[ [person alloc] init];
// 指標變數的位址
nslog(@"%p", &p);
// 物件位址
nslog(@"%p", p);
// 類名+物件位址
nslog(@"%@", p);
__line__ // 當前**的行號。用%d輸出
__file__ // 輸出檔案路徑,用%s輸出,使用printf("%s\n",__file__);
__func__ // 輸出當前函式名,用%s輸出,使用nslog(@"%s\n",__func__);
四.sel資料型別
乙個sel型別就代表乙個方法
// 先設定乙個sel型別的資料s儲存(test1:)sel s = @selector(test1:);
// 再呼叫test1方法,傳入@「sun」
[p performselector:s withobject:@"sun"];
每個方法內部都有乙個_cmd,它代表當前方法。只能轉成字串呼叫
- (void)test2
OC 構造方法和分類
建立乙個可用的物件 person p person new new方法實際上是分為兩步來建立乙個物件 1 使用 alloc方法來分配儲存空間 返回分配的物件 2 使用 init方法來對物件進行初始化。可以把new方法拆開如下 1.呼叫類方法 alloc分配儲存空間,返回未經初始化的物件 person...
OC語言構造方法
oc語言構造方法 一 構造方法 一 構造方法的呼叫 完整的建立乙個可用的物件 person p person new new方法的內部會分別呼叫兩個方法來完成 2件事情,1 使用 alloc 方法來分配儲存空間 返回分配的物件 2 使用 init 方法來對物件進行初始化。可以把new 方法拆開如下 ...
OC語言 構造方法
一 構造方法 1.什麼是oc構造方法?oc構造方法是用來初始化物件時呼叫的方法,是個物件方法,以 號開頭。2.如果你先建立乙個person類,讓建立後的person類新建立的物件預設的年齡為20歲,該如何處理?重寫構造方法,在重寫的構造方法中對person的成員變數進行賦值。二 物件初始化分析 pe...