1.set方法和get方法的使用場合@public的成員可以被隨意賦值夜涕,應(yīng)該使用set方法和get方法來管理成員的訪問(類似機場的安檢沸伏、水龍頭過濾恩商,過濾掉不合理的東西),比如僵尸的生命值不能為負數(shù)
2.set方法作用:用來設(shè)置成員變量粗合,可以在方法里面過濾掉一些不合理的值命名規(guī)范:方法都是以set開頭萍嬉,而且后面跟上成員變量名,成員變量名的首字母必須大寫形參名稱不要跟成員變量同名
3.get方法作用:返回對象內(nèi)部的成員變量命名規(guī)范:get方法的名稱一般就跟成員變量同名
4.成員變量的命名規(guī)范成員變量都以下劃線 _ 開頭可以跟get方法的名稱區(qū)分開可以跟其他局部變量區(qū)分開舌劳,一看到下劃線開頭的變量帚湘,肯定是成員變量5.代碼示例 #import// 聲明 @interface Car : NSObject {? ? int _wheels; // 輪子個數(shù) } /*set方法*/ - (void) setWheels:(int)wheels; /*get方法*/ - (int) wheels; @end? @implementation Car // set方法的實現(xiàn) - (void) setWheels:(int)wheels {? ? // 對外面?zhèn)鬟M來的輪子數(shù)進行過濾? ? if (wheels<=0)? ? {? ? ? ? wheels = 1;? ? }? ? ? ? ? _wheels = wheels; }? // get方法的實現(xiàn) - (int) wheels {? ? return _wheels; } @end #import@interface Student : NSObject
{
// 成員變量盡量不要用@public
// @public
int age;
//@public
// 只讀(readonly):只允許外界訪問我的no,不允許外界修改我的no
int no; // 只需要提供get方法
}
//
/*
set方法
1.作用: 提供一個方法給外界設(shè)置成員變量值甚淡,可以在方法里面對參數(shù)進行相應(yīng)過濾
2.命名規(guī)范:
1> 方法名必須以set開頭
2> set后面跟上成員變量的名稱大诸,成員變量的首字母必須大寫
3> 返回值一定是void
4> 一定要接收一個參數(shù),而且參數(shù)類型跟成員變量類型一致
5> 形參的名稱不能跟成員變量名一樣
*/
- (void)setAge:(int)newAge;
/*
get方法
1.作用:返回對象內(nèi)部的成員變量
2.命名規(guī)范:
1> 肯定有返回值贯卦,返回值類型肯定與成員變量類型一致
2> 方法名跟成員變量名一樣
3> 不需要接收任何參數(shù)
*/
- (int)age;
- (void)study;
@end
@implementation Student
// set方法的實現(xiàn)
- (void)setAge:(int)newAge
{
// 對傳進來的參數(shù)進行過濾
if (newAge <= 0)
{
newAge = 1;
}
age = newAge;
}
- (int)age
{
return age;
}
- (void)study
{
NSLog(@"%d歲的學(xué)生在學(xué)習(xí)", age);
}
@end
int main()
{
Student *stu = [Student new];
//stu->age = -10;
//stu->age = 10;
[stu setAge:10];
NSLog(@"學(xué)生的年齡是%d歲", [stu age]);
//[stu study];
return 0;
}