规范set方法与get方法的一个练习
本帖最后由 Sian 于 2014-3-12 20:00 编辑源代码:
/*
规范set方法与get方法的一个练习
设计一个成绩类,要求:
属性:c语言成绩、oc语言成绩、平均成绩、总成绩
方法:c语言成绩可读写、oc成绩可读写、平均成绩与总成绩只读
*/
#import<Foundation/Foundation.h>
@interface Score : NSObject {
/* 定义成员变量使用下划线"_"开头;
1> 可以区分成员变量与get方法名,避免重名;
2> 从可读性方面考虑,可与局部变量直接从命名方面区分开来;
*/
int _cScore;
int _ocScore;
int _totalScore;
int _averageScore;
}
// 声明两门成绩的set与get方法(可读写)
- (void)setCScore:(int)cScore;
- (int)cScore;
- (void)setOcScore:(int)ocScore;
- (int)ocScore;
// 声明两门成绩的平均成绩与总成绩的get方法(只读)
- (int)totalScore;
- (int)averageScore;
@end
@implementation Score
// c语言成绩的set方法与get方法
- (void)setCScore:(int)cScore {
_cScore = cScore;
// 在赋值同时将总成绩与平均成绩及时计算出来,这是一种比较好的思想
_totalScore = _cScore + _ocScore;
_averageScore = _totalScore / 2;
}
- (int)cScore {
return _cScore;
}
// OC语言成绩的set方法与get方法
- (void)setOcScore:(int)ocScore {
_ocScore = ocScore;
// 与c语言成绩get方法一样,赋值时同时将平均成绩与总成绩计算出来
_totalScore = _ocScore + _cScore;
_averageScore = _totalScore / 2;
}
- (int)ocScore {
return _ocScore;
}
// 总成绩的get方法,由于只读,没有set方法
- (int)totalScore {
// 由于在两门成绩的get方法中已经计算,所以直接返回成员变量值即可
return _totalScore;
}
// 平均成绩的get方法,由于只读,没有set方法
- (int)averageScore {
// 由于在两门成绩的get方法中已经计算,所以直接返回成员变量值即可
return _averageScore;
}
@end
int main() {
Score * s = ; // 创建一个Score对象s
;// 调用对象的c语言成绩set方法,将c语言成绩赋值为90分
;// 调用对象的oc成绩set方法,将oc成绩赋值为93分
int total = ;// 调用对象的总成绩get方法并将值赋予临时变量total
int ave = ; // 调用对象的平均成绩get方法并将值赋予临时变量ave
// 打印两个结果值
NSLog(@"TotalScore=%d, AverageScore=%d", total, ave);
return 0;
}
注释已写到代码中,运行结果为:2014-03-12 19:56:42.719 a.out TotalScore=183, AverageScore=91
页:
[1]