麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

【學習筆記】【OC語言】self關鍵字

2019-11-14 18:42:10
字體:
來源:轉載
供稿:網友

1.成員變量和局部變量同名
當成員變量和局部變量同名時,采取就近原則,訪問的是局部變量
用self訪問成員變量,區分同名的局部變量

2.使用細節
出現的地方:所有的OC方法中(對象方法/類方法),不能出現在函數
作用
使用 "self->成員變量名" 訪問當前方法調用的成員變量
使用 "[self 方法名];" 來調用方法(對象方法/類方法)

3.常見錯誤
低級錯誤:用self去調用函數
類方法中用self調用對象方法,對象方法中用self調用類方法
self死循環

4.代碼

1.

 1 #import <Foundation/Foundation.h> 2  3 @interface Person : NSObject 4 { 5     int _age; 6 } 7  8 - (void)setAge:(int)age; 9 - (int)age;10 11 - (void)test;12 13 @end14 15 @implementation Person16 - (void)setAge:(int)age17 {18     // _age = age;19     self->_age = age;20 }21 - (int)age22 {23     return self->_age;24 }25 26 - (void)test27 {28     // self:指向了方向調用者,代表著當期對象29     int _age = 20;30     NSLog(@"Person的年齡是%d歲", self->_age);31 }32 33 @end34 35 int main()36 {37     Person *p = [Person new];38     39     [p setAge:10];40     41     [p test];42     43     return 0;44 }

2.

 1 #import <Foundation/Foundation.h> 2  3 /* 4  self的用途: 5  1> 誰調用了當前方法,self就代表誰 6  * self出現在對象方法中,self就代表對象 7  * self出現在類方法中,self就代表類 8   9  2> 在對象方法利用"self->成員變量名"訪問當前對象內部的成員變量10  11  2> [self 方法名]可以調用其他對象方法/類方法12  */13 14 @interface Dog : NSObject15 - (void)bark;16 - (void)run;17 @end18 19 @implementation Dog20 - (void)bark21 {22     NSLog(@"汪汪汪");23 }24 - (void)run25 {26     [self bark];27     //NSLog(@"汪汪汪");28     NSLog(@"跑跑跑");29 }30 @end31 32 int main()33 {34     Dog *d = [Dog new];35     36     [d run];37     38     return 0;39 }

3.

 1 /* 2  設計一個計算器類 3  * 求和 4  * 求平均值 5  */ 6  7 #import <Foundation/Foundation.h> 8  9 // 工具類:基本沒有任何成員變量,里面的方法基本都是類方法10 @interface JiSusnQi : NSObject11 + (int)sumOfNum1:(int)num1 andNum2:(int)num2;12 13 + (int)averageOfNum1:(int)num1 andNum2:(int)num2;14 @end15 16 @implementation JiSusnQi17 + (int)sumOfNum1:(int)num1 andNum2:(int)num218 {19     return num1 + num2;20 }21 22 + (int)averageOfNum1:(int)num1 andNum2:(int)num223 {24     // 在這種情況下,self代表類25     int sum = [self sumOfNum1:num1 andNum2:num2];26     return sum / 2;27 }28 @end29 30 int main()31 {32     int a = [JiSusnQi averageOfNum1:10 andNum2:12];33     34     NSLog(@"a=%d", a);35     36 //    JiSusnQi *jsq = [JiSusnQi new];37 //    38 //    39 //    [jsq sumOfNum1:10 andNum2:13];40     41     return 0;42 }

4.使用注意

 1 #import <Foundation/Foundation.h> 2  3 @interface Person : NSObject 4 - (void)test; 5 + (void)test; 6  7 - (void)test1; 8 + (void)test2; 9 10 11 - (void)haha1;12 13 + (void)haha2;14 15 16 @end17 18 @implementation Person19 - (void)test20 {21     NSLog(@"調用了-test方法");22     23     // 會引發死循環24     //[self test];25 }26 27 + (void)test28 {29     NSLog(@"調用了+test方法");30     31     // 會引發死循環32     //[self test];33 }34 35 - (void)test136 {37     [self test]; // -test38 }39 40 + (void)test241 {42     [self test]; // +test43 }44 45 - (void)haha146 {47     NSLog(@"haha1-----");48 }49 50 51 void haha3()52 {53     54 }55 56 + (void)haha257 {58     // haha3();59     [self haha3];60     // [self haha1];61 }62 @end63 64 int main()65 {66     [Person haha2];67     //Person *p = [Person new];68     69     //[p test1];70     return 0;71 }

 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品1区2区 | 久久一级 | 久久国产精品二国产精品中国洋人 | 午夜视频免费在线观看 | 国产成人精品一区二区视频免费 | 精品亚洲va在线va天堂资源站 | 色七七亚洲 | 久久久视频免费观看 | 日本a∨精品中文字幕在线 狠狠干精品视频 | 中文字幕爱爱视频 | 欧美日韩亚洲一区二区三区 | 精品在线免费播放 | 亚洲国产精品二区 | 精品国产一级毛片 | av在线免费观看播放 | 爽爽淫人网 | 欧美a∨一区二区三区久久黄 | 激情网站免费观看 | 国产精品午夜未成人免费观看 | 羞羞网站在线观看入口免费 | 国产一区二区视频在线播放 | 国产精品99久久久久久久女警 | 精品国产91久久久久久久 | 成人免费毛片在线观看 | 视频一区二区三区在线 | 全免费午夜一级毛片真人 | 黄色特级毛片 | 欧美大屁股精品毛片视频 | 看片一区二区三区 | 精品久久久久久久久久久aⅴ | 黄污在线观看 | 久成人 | 羞羞的 | 久久久麻豆| 男人午夜小视频 | 亚洲一区二区不卡视频 | 精品一区二区久久久久久久网精 | 国产午夜电影在线观看 | 轻点插视频| 美国一级毛片片aa久久综合 | 久久tv免费国产高清 |