類方法跟self關鍵字

main.m

#import <Foundation/Foundation.h>

#import "Person.h"

#import "Calculator.h"

#import "Car.h"

#import "Dog.h"


int main(int argc, const char * argv[])

{

Person *p = [Person new];

[p run];

[Person run];

//? [Person print];


[p setAge:18];

[p age];


int a = [Calculator sumofNum1:52 andNum2:55];

NSLog(@"a = %d",a);

int b = [Calculator aveofNum1:66 andNum2:55];

NSLog(@"b = %d",b);


Car *c = [Car new];

[c setSpeed:50];

[c speed];

[c test];

[Car test];


Dog *d = [Dog new];

[d run];

//? [d bark];


return 0;

}



/*?

類方法:

1>只能以加號開頭

2>類方法只能由類調用

3>類方法不能訪問成員變量


對象方法:

1>以減號開頭

2>對象方法只能由對象調用

3>可以訪問成員變量


類方法的好處與使用的場合

1>不依賴對象渤刃,執(zhí)行效率比對象方法高(能用類方法盡量用類方法)

2>場合:不需要成員變量時,都使用類方法(工具類)


注意:對象方法和類方法可以同名,可以同時存在

*/


Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject

{

int _age;

}


- (void)run;

+ (void)run;


+ (void)print

{

NSLog(@"%d對象方法",_age);

}


- (void)setAge:(int)age;

- (int)age;

@end


Person.m

#import <Person.h>

@implementation Person

- (void)run

{

//? NSLog(@"%d類方法",_age);

//? 報錯暇昂,在類方法中不能訪問成員變量

NSLog(@"調用了-run方法");

//? [self run];? //? 死循環(huán)

[Person run];? //? 在對象方法中可以調用類方法,在類方法中不可以調用對象方法(類方法中沒有對象)

}


+ (void)run

{

NSLog(@"調用了+run方法");

//? [Person run];? //? 死循環(huán)

}


- (void)setAge:(int)age

{

_age = age;

}

- (int)age

{

return _age;

}

@end


/*

計算器類:

求和

求平均值

*/


Calculator.h

#import <Foundation/Foundation.h>

@interface Calculator : NSObject

+ (int)sumofNum1:(int)num1 andNum2:(int)num2;

+ (int)aveofNum1:(int)num1 andNum2:(int)num2;

@end


Calculator.m

#import <Calculator.h>

@implementation Calculator


+ (int)sumofNum1:(int)num1 andNum2:(int)num2

{

return num1 + num2;

}


+ (int)aveofNum1:(int)num1 andNum2:(int)num2;

//? self? 當前類

int sum = [self sumofNum1:num1 andNum2:num2];

return sum/2;

//? int sum = [Calculator sumofNum1:num1 andNum2:num2];

return sum/2;

//? return (num1 +num2)/2;


@end


//? self關鍵字

/*

self關鍵字的用途

1>self關鍵字可以用來訪問成員變量

2>調用當前的方法吱窝,self代表誰

1>>self出現(xiàn)在對象方法中:代表當前對象

2>>self出現(xiàn)在類方法中:代表當前類

調用方法的格式:[self 方法名];


*/


Car.h

#import <Foundation/Foundation.h>

@interface Car : NSObject

{

int _speed;

}


- (void)setSpeed:(int)speed;

- (int)speed;


- (void)test;

+ (void)test;


- (void)test1;

+ (void)test2;

@end


Car.m

#import <Car.h>

@implementation Car

- (void)setSpeed:(int)speed

{

_speed = speed;

}


- (void)speed

{

return _speed;

}


//? - (void)test

//? {

//? int _speed = 40;? //? 不知道_speed是誰

// NSLog(@"speed=%d",self->_speed);

//? NSLog(@"speed=%d",[self speed]);? //? 使用get方法

//? }


- (void)test

{

NSLog(@"調用了-test方法");

//? [self test];? //? 死循環(huán)

//? [Car test];

}

+ (void)test

{

NSLog(@"調用了+test方法");

//? [self test];? //? 死循環(huán)

}


- (void)test1

{

NSLog(@"abcd");

}

+ (void)test2

{

NSLog(@"1234");

}

@end


Dog.h

#import <Foundation/Foundation.h>

@interface Dog : NSObject

- (void)bark;

- (void)run;

@end


Dog.m

#import <Dog.h>

@implementation Dog

- (void)bark

{

NSLog(@"汪汪汪");

}

- (void)run

{

//? NSLog(@"汪汪汪");

//? self? 代表當前對象

[self bark];

NSLog(@"跑跑跑");

}

@end


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末投蝉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子入客,更是在濱河造成了極大的恐慌,老刑警劉巖腿椎,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桌硫,死亡現(xiàn)場離奇詭異,居然都是意外死亡啃炸,警方通過查閱死者的電腦和手機铆隘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來南用,“玉大人膀钠,你說我怎么就攤上這事掏湾。” “怎么了肿嘲?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵融击,是天一觀的道長。 經常有香客問我雳窟,道長砚嘴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任涩拙,我火速辦了婚禮际长,結果婚禮上,老公的妹妹穿的比我還像新娘兴泥。我一直安慰自己工育,他們只是感情好,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布搓彻。 她就那樣靜靜地躺著如绸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旭贬。 梳的紋絲不亂的頭發(fā)上怔接,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機與錄音稀轨,去河邊找鬼扼脐。 笑死,一個胖子當著我的面吹牛奋刽,可吹牛的內容都是我干的瓦侮。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼佣谐,長吁一口氣:“原來是場噩夢啊……” “哼肚吏!你這毒婦竟也來了?” 一聲冷哼從身側響起狭魂,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤罚攀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后雌澄,有當地人在樹林里發(fā)現(xiàn)了一具尸體斋泄,經...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年掷伙,在試婚紗的時候發(fā)現(xiàn)自己被綠了是己。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片又兵。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡任柜,死狀恐怖卒废,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情宙地,我是刑警寧澤摔认,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站宅粥,受9級特大地震影響参袱,放射性物質發(fā)生泄漏。R本人自食惡果不足惜秽梅,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一抹蚀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧企垦,春花似錦环壤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至荧降,卻和暖如春接箫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朵诫。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工辛友, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剪返。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓瞎领,卻偏偏與公主長得像,于是被迫代替她去往敵國和親随夸。 傳聞我的和親對象是個殘疾皇子九默,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內容