年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1955|回复: 0

规范set方法与get方法的一个练习

[复制链接]
  • TA的每日心情
    奋斗
    2022-12-13 21:26
  • 签到天数: 371 天

    [LV.9]以坛为家II

    发表于 2014-3-12 19:57:11 | 显示全部楼层 |阅读模式
    本帖最后由 Sian 于 2014-3-12 20:00 编辑

    源代码:
    1. /*
    2. 规范set方法与get方法的一个练习
    3.     设计一个成绩类,要求:
    4.     属性:c语言成绩、oc语言成绩、平均成绩、总成绩
    5.     方法:c语言成绩可读写、oc成绩可读写、平均成绩与总成绩只读
    6. */
    7. #import<Foundation/Foundation.h>
    8. @interface Score : NSObject {
    9.     /* 定义成员变量使用下划线"_"开头;
    10.         1> 可以区分成员变量与get方法名,避免重名;
    11.         2> 从可读性方面考虑,可与局部变量直接从命名方面区分开来;
    12.      */
    13.     int _cScore;
    14.     int _ocScore;
    15.     int _totalScore;
    16.     int _averageScore;
    17.    
    18. }
    19. // 声明两门成绩的set与get方法(可读写)
    20. - (void)setCScore:(int)cScore;
    21. - (int)cScore;
    22. - (void)setOcScore:(int)ocScore;
    23. - (int)ocScore;
    24. // 声明两门成绩的平均成绩与总成绩的get方法(只读)
    25. - (int)totalScore;
    26. - (int)averageScore;
    27. @end
    28. @implementation Score
    29. // c语言成绩的set方法与get方法
    30. - (void)setCScore:(int)cScore {
    31.     _cScore = cScore;
    32.    
    33.     // 在赋值同时将总成绩与平均成绩及时计算出来,这是一种比较好的思想
    34.     _totalScore = _cScore + _ocScore;
    35.     _averageScore = _totalScore / 2;
    36.    
    37. }
    38. - (int)cScore {
    39.     return _cScore;
    40.    
    41. }
    42. // OC语言成绩的set方法与get方法
    43. - (void)setOcScore:(int)ocScore {
    44.     _ocScore = ocScore;
    45.    
    46.     // 与c语言成绩get方法一样,赋值时同时将平均成绩与总成绩计算出来
    47.     _totalScore = _ocScore + _cScore;
    48.     _averageScore = _totalScore / 2;
    49. }
    50. - (int)ocScore {
    51.     return _ocScore;
    52.    
    53. }
    54. // 总成绩的get方法,由于只读,没有set方法
    55. - (int)totalScore {
    56.     // 由于在两门成绩的get方法中已经计算,所以直接返回成员变量值即可
    57.     return _totalScore;
    58.    
    59. }
    60. // 平均成绩的get方法,由于只读,没有set方法
    61. - (int)averageScore {
    62. // 由于在两门成绩的get方法中已经计算,所以直接返回成员变量值即可
    63.     return _averageScore;
    64.    
    65. }
    66. @end
    67. int main() {
    68.     Score * s = [Score new]; // 创建一个Score对象s
    69.     [s setCScore:90];  // 调用对象的c语言成绩set方法,将c语言成绩赋值为90分
    70.     [s setOcScore:93];  // 调用对象的oc成绩set方法,将oc成绩赋值为93分
    71.     int total = [s totalScore];  // 调用对象的总成绩get方法并将值赋予临时变量total
    72.     int ave = [s averageScore]; // 调用对象的平均成绩get方法并将值赋予临时变量ave
    73.    
    74.     // 打印两个结果值
    75.     NSLog(@"TotalScore=%d, AverageScore=%d", total, ave);
    76.     return 0;
    77. }
    复制代码
    注释已写到代码中,运行结果为:
    1. 2014-03-12 19:56:42.719 a.out[487:507] TotalScore=183, AverageScore=91
    复制代码




    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-5-5 22:23 , Processed in 0.048316 second(s), 22 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表