一、关于objective-c中的set方法
1、作用:
他的作用是提供一个方法给外界设置成员变量,可以在方法里面对相应参数进行相应过滤。
2、命名规范:
1>set方法名必须以set开头;
2>set后面跟上成员变量的名称,而且成员变量的首字母必须大写;
3>他的返回值一定是void;
4>一定要接受一个参数,而且参数类型和成员变量要保持一致;
5>形参名称不能和成员变量保持一致;
二、关于objective-c中的get方法
1、作用:
他的作用是返回对象内部的成员变量。
2、命名规范:
1>get命名要跟成员变量保持一致
三、get方法的使用2>get方法肯定有返回值;
3>他不需要接受任何参数;
注: 成员变量的命名规范:一定要以_(下划线)开头
作用: 1、让成员变量可以和get方法的名称区分开。
2、每当我们一看到下划线开头的变量便能知道,该变量是成员变量。
关于set方法和get方法使用细节,通过代买来体会理解会更加饱满。代码如下
我们需要设计一个成绩类,包括:
* C语言成绩(可读可写) // 需要set 、get方法
* OC成绩(可读可写) // 需要set 、get方法
* 总分(只读) // 需要get方法
* 平均分(只读) // 需要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;
}