Sian 发表于 2014-3-12 19:57:11

规范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]
查看完整版本: 规范set方法与get方法的一个练习