【學習筆記】【OC語言】set方法和get方法
1.set方法和get方法的使用場合
@public的成員可以被隨意賦值,應該使用set方法和get方法來管理成員的訪問(類似機場的安檢、水龍頭過濾,過濾掉不合理的東西),比如殭屍的生命值不能爲負數
2.set方法
作用:用來設置成員變量,可以在方法裏面過濾掉一些不合理的值
命名規範:
方法都是以set開頭,而且後面跟上成員變量名,成員變量名的首字母必須大寫
形參名稱不要跟成員變量同名
3.get方法
作用:返回對象內部的成員變量
命名規範:get方法的名稱一般就跟成員變量同名
4.成員變量的命名規範
成員變量都以下劃線 _ 開頭
可以跟get方法的名稱區分開
可以跟其他局部變量區分開,一看到下劃線開頭的變量,肯定是成員變量
5.代碼示例
#import <Foundation/Foundation.h> // 聲明 @interface Car : NSObject { int _wheels; // 輪子個數 } /*set方法*/ - (void) setWheels:(int)wheels; /*get方法*/ - (int) wheels; @end @implementation Car // set方法的實現 - (void) setWheels:(int)wheels { // 對外面傳進來的輪子數進行過濾 if (wheels<=0) { wheels = 1; } _wheels = wheels; } // get方法的實現 - (int) wheels { return _wheels; } @end
#import <Foundation/Foundation.h> @interface Student : NSObject { // 成員變量儘量不要用@public // @public int age; //@public // 只讀(readonly):只允許外界訪問我的no,不允許外界修改我的no int no; // 只需要提供get方法 } // /* set方法 1.作用: 提供一個方法給外界設置成員變量值,可以在方法裏面對參數進行相應過濾 2.命名規範: 1> 方法名必須以set開頭 2> set後面跟上成員變量的名稱,成員變量的首字母必須大寫 3> 返回值一定是void 4> 一定要接收一個參數,而且參數類型跟成員變量類型一致 5> 形參的名稱不能跟成員變量名一樣 */ - (void)setAge:(int)newAge; /* get方法 1.作用:返回對象內部的成員變量 2.命名規範: 1> 肯定有返回值,返回值類型肯定與成員變量類型一致 2> 方法名跟成員變量名一樣 3> 不需要接收任何參數 */ - (int)age; - (void)study; @end @implementation Student // set方法的實現 - (void)setAge:(int)newAge { // 對傳進來的參數進行過濾 if (newAge <= 0) { newAge = 1; } age = newAge; } - (int)age { return age; } - (void)study { NSLog(@"%d歲的學生在學習", age); } @end int main() { Student *stu = [Student new]; //stu->age = -10; //stu->age = 10; [stu setAge:10]; NSLog(@"學生的年齡是%d歲", [stu age]); //[stu study]; return 0; }