1.set方法和get方法的使用場合@public的成員可以被隨意賦值蹄梢,應(yīng)該使用set方法和get方法來管理成員的訪問(類似機(jī)場的安檢傍睹、水龍頭過濾搀菩,過濾掉不合理的東西)螃成,比如僵尸的生命值不能為負(fù)數(shù)2.set方法作用:用來設(shè)置成員變量旦签,可以在方法里面過濾掉一些不合理的值命名規(guī)范:方法都是以set開頭,而且后面跟上成員變量名寸宏,成員變量名的首字母必須大寫形參名稱不要跟成員變量同名3.get方法作用:返回對(duì)象內(nèi)部的成員變量命名規(guī)范:get方法的名稱一般就跟成員變量同名4.成員變量的命名規(guī)范成員變量都以下劃線 _ 開頭可以跟get方法的名稱區(qū)分開可以跟其他局部變量區(qū)分開宁炫,一看到下劃線開頭的變量,肯定是成員變量5.代碼示例 #import// 聲明 @interface Car : NSObject {? ? int _wheels; // 輪子個(gè)數(shù) } /*set方法*/ - (void) setWheels:(int)wheels; /*get方法*/ - (int) wheels; @end? @implementation Car // set方法的實(shí)現(xiàn) - (void) setWheels:(int)wheels {? ? // 對(duì)外面?zhèn)鬟M(jìn)來的輪子數(shù)進(jìn)行過濾? ? if (wheels<=0)? ? {? ? ? ? wheels = 1;? ? }? ? ? ? ? _wheels = wheels; }? // get方法的實(shí)現(xiàn) - (int) wheels {? ? return _wheels; } @end #import@interface Student : NSObject
{
// 成員變量盡量不要用@public
// @public
int age;
//@public
// 只讀(readonly):只允許外界訪問我的no氮凝,不允許外界修改我的no
int no; // 只需要提供get方法
}
//
/*
set方法
1.作用: 提供一個(gè)方法給外界設(shè)置成員變量值羔巢,可以在方法里面對(duì)參數(shù)進(jìn)行相應(yīng)過濾
2.命名規(guī)范:
1> 方法名必須以set開頭
2> set后面跟上成員變量的名稱,成員變量的首字母必須大寫
3> 返回值一定是void
4> 一定要接收一個(gè)參數(shù)罩阵,而且參數(shù)類型跟成員變量類型一致
5> 形參的名稱不能跟成員變量名一樣
*/
- (void)setAge:(int)newAge;
/*
get方法
1.作用:返回對(duì)象內(nèi)部的成員變量
2.命名規(guī)范:
1> 肯定有返回值竿秆,返回值類型肯定與成員變量類型一致
2> 方法名跟成員變量名一樣
3> 不需要接收任何參數(shù)
*/
- (int)age;
- (void)study;
@end
@implementation Student
// set方法的實(shí)現(xiàn)
- (void)setAge:(int)newAge
{
// 對(duì)傳進(jìn)來的參數(shù)進(jìn)行過濾
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;
}