set方法
1.作用: 提供一個(gè)方法給外界設(shè)置成員變量值,可以在方法里面對(duì)參數(shù)進(jìn)行相應(yīng)過(guò)濾
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ù)
1.set方法和get方法的使用場(chǎng)合
@public的成員可以被隨意賦值,應(yīng)該使用set方法和get方法來(lái)管理成員的訪問(wèn)(類似機(jī)場(chǎng)的安檢、水龍頭過(guò)濾,過(guò)濾掉不合理的東西),比如僵尸的生命值不能為負(fù)數(shù)
2.set方法
作用:用來(lái)設(shè)置成員變量,可以在方法里面過(guò)濾掉一些不合理的值
命名規(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)來(lái)的輪子數(shù)進(jìn)行過(guò)濾
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):只允許外界訪問(wèn)我的no,不允許外界修改我的no
int no; // 只需要提供get方法
}
//
/*
set方法
1.作用: 提供一個(gè)方法給外界設(shè)置成員變量值,可以在方法里面對(duì)參數(shù)進(jìn)行相應(yīng)過(guò)濾
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)來(lái)的參數(shù)進(jìn)行過(guò)濾
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;
}