1.set方法和get方法的使用場合
@public的成員可以被隨意賦值,應該使用set方法和get方法來管理成員的訪問(類似機場的安檢、水龍頭過濾,過濾掉不合理的東西),比如僵尸的生命值不能為負數
2.set方法
作用:用來設置成員變量,可以在方法里面過濾掉一些不合理的值
命名規范:
方法都是以set開頭,而且后面跟上成員變量名,成員變量名的首字母必須大寫
形參名稱不要跟成員變量同名
3.get方法
作用:返回對象內部的成員變量
命名規范:get方法的名稱一般就跟成員變量同名
4.成員變量的命名規范
成員變量都以下劃線 _ 開頭
可以跟get方法的名稱區分開
可以跟其他局部變量區分開,一看到下劃線開頭的變量,肯定是成員變量
5.代碼示例
1 #import <Foundation/Foundation.h> 2 // 聲明 3 @interface Car : NSObject 4 { 5 int _wheels; // 輪子個數 6 } 7 /*set方法*/ 8 - (void) setWheels:(int)wheels; 9 /*get方法*/10 - (int) wheels;11 @end12 13 @implementation Car14 // set方法的實現15 - (void) setWheels:(int)wheels16 {17 // 對外面傳進來的輪子數進行過濾18 if (wheels<=0)19 {20 wheels = 1;21 }22 23 _wheels = wheels;24 }25 26 // get方法的實現27 - (int) wheels28 {29 return _wheels;30 }31 @end
1 #import <Foundation/Foundation.h> 2 3 @interface Student : NSObject 4 { 5 // 成員變量盡量不要用@public 6 // @public 7 int age; 8 9 //@public10 // 只讀(readonly):只允許外界訪問我的no,不允許外界修改我的no11 int no; // 只需要提供get方法12 }13 14 //15 /*16 set方法17 1.作用: 提供一個方法給外界設置成員變量值,可以在方法里面對參數進行相應過濾18 2.命名規范:19 1> 方法名必須以set開頭20 2> set后面跟上成員變量的名稱,成員變量的首字母必須大寫21 3> 返回值一定是void22 4> 一定要接收一個參數,而且參數類型跟成員變量類型一致23 5> 形參的名稱不能跟成員變量名一樣24 */25 - (void)setAge:(int)newAge;26 27 /*28 get方法29 1.作用:返回對象內部的成員變量30 2.命名規范:31 1> 肯定有返回值,返回值類型肯定與成員變量類型一致32 2> 方法名跟成員變量名一樣33 3> 不需要接收任何參數34 */35 - (int)age;36 37 - (void)study;38 39 @end40 41 @implementation Student42 43 // set方法的實現44 - (void)setAge:(int)newAge45 {46 // 對傳進來的參數進行過濾47 if (newAge <= 0)48 {49 newAge = 1;50 }51 52 age = newAge;53 }54 55 - (int)age56 {57 return age;58 }59 60 - (void)study61 {62 NSLog(@"%d歲的學生在學習", age);63 }64 65 @end66 67 int main()68 {69 Student *stu = [Student new];70 //stu->age = -10;71 72 //stu->age = 10;73 74 [stu setAge:10];75 76 77 NSLog(@"學生的年齡是%d歲", [stu age]);78 79 //[stu study];80 81 82 return 0;83 }
|
新聞熱點
疑難解答