一.類方法
類方法的好處:
1)不依賴對象,不需要開辟內存空間,也可以直接實現某些功能,節約內存,提高效率;
缺點:不能訪問對象的成員變量(指類方法在 方法實現的時候不能直接訪問成員變量);
類方法和對象無關,是屬于類的,沒有對象,自然不能調用對象的方法,不能使用對象的成員變量;
類方法自身不能調用方法, 需要通過類取調用
成員變量,實例變量,字段
類方法的原作機制:
1)實現類的封裝性;
將在堆中申請內存,成員變量初始化這兩個步驟在內部進行;
2)在類方法聲明部分需要 返回值 和 參數;
返回值是運行的結果;參數就是你需要的成員變量的具體值;
[Calculator sumWithA:10 andWith:20] 參數直接輸入成員變量,返回計算結果;
+(Student *)studentWithName:(NSString *)name andWithAge:(int)age
andWithSex:(NSString *)sex andWithScore: (float)score;
二.繼承
//重寫【重新實現父類提供的方法】-當父類的方法不能滿足子類的需求是,使用重寫這 個方法來完善功能
//那么重寫之后,再調用該方法,會默認調用重寫之后的方法
三.new
1.成員變量的作用域
1)屬性自動幫我們聲明的成員變量,默認是私有的,所以子類訪問該 屬性,使用點語法訪問/或者自己在子類的.h文件中手動聲明成員變量 2)在.m文件中聲明的成員變量,強制性私有化;(聲明私有成員變量常
即使用@public也無法調用; 用方法)
在子類中用點語法也不能調用(自能自己內部使用)
2.構造方法 Stundet *stu = [[Stundet alloc] init];
1)自定義初始化方法
//1.先初始化父類
父類初始化成功
//2.再初始化子類獨有的那部分
//super 用來調用父類中方法的關鍵字
格式:
-( id ) init{
self = [ super init ];
if (self ){
self.age = 20;
}
return self;
}