您的位置:首页 > 移动开发 > Objective-C

关于objective-c中的set和get方法

2014-10-23 18:58 232 查看
一、关于objective-c中的set方法
1、作用:
他的作用是提供一个方法给外界设置成员变量,可以在方法里面对相应参数进行相应过滤。
2、命名规范:
1>set方法名必须以set开头;
2>set后面跟上成员变量的名称,而且成员变量的首字母必须大写

3>他的返回值一定是void;

4>一定要接受一个参数,而且参数类型和成员变量要保持一致;

5>形参名称不能和成员变量保持一致;

二、关于objective-c中的get方法

1、作用:
他的作用是返回对象内部的成员变量。
2、命名规范:

1>get命名要跟成员变量保持一致
2>get方法肯定有返回值;
3>他不需要接受任何参数;

注: 成员变量的命名规范:一定要以_(下划线)开头
作用: 1、让成员变量可以和get方法的名称区分开。

2、每当我们一看到下划线开头的变量便能知道,该变量是成员变量。

三、get方法的使用
关于set方法和get方法使用细节,通过代买来体会理解会更加饱满。代码如下
我们需要设计一个成绩类,包括:

* C语言成绩(可读可写) // 需要set 、get方法

* OC成绩(可读可写)
// 需要set 、get方法

* 总分(只读)
// 需要get方法

* 平均分(只读)
// 需要get方法

代码如下:

#import <Foundation/Foundation.h>

@interface Score : NSObject
{
int _cScore; // C语言成绩
int _ocScore; // OC成绩

int _totalScore;// 总分
int _averageScoe; // 平均分
}

- (void)setCScore:(int)cScore;                                  // CScore 的set方法的声明
- (int)cScore;                                 //CScore 的get方法的声明

- (void)setOcScore:(int)ocScore;                                // oCScore 的set方法的声明
- (int)ocScore;                              // oCScore 的get方法的声明

- (int)totalScore;  // totalScore 的get方法的声明
- (int)averageScore;  // averageScore 的get方法的声明

@end

@implementation Score
- (void)setCScore:(int)cScore
{
_cScore = cScore;

// 计算总分
_totalScore = _cScore + _ocScore;  // set方法的一大好处就是可以监听程序,每当程序中,有新的值对成员变量进行改变
_averageScoe = _totalScore/2; 时,就可以在set方法里面监听到,然后对新值进行操作,非常方便,比如这个例子,
} 我们就可以在更新Cscore的时候,求出现在的总分和平均值。
- (int)cScore
{
return _cScore;
}

- (void)setOcScore:(int)ocScore
{
_ocScore = ocScore;

// 计算总分
_totalScore = _cScore + _ocScore; // set方法的一大好处就是可以监听程序,每当程序中,有新的值对成员变量进行改变
_averageScoe = _totalScore/2;   除了在Cscore中进行监听外,同时还在另一成员变量ocscore中进行监听。
}
// 监听成员变量的改变

- (int)ocScore
{
return _ocScore;
}

- (int)totalScore
{
return _totalScore;
}
- (int)averageScore
{
return _averageScoe;
}
@end

int main()
{
Score *s = [Score new];

[s setCScore:90];
[s setOcScore:100];

[s setCScore:80];

int a = [s totalScore];

NSLog(@"总分:%d", a);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: