黑马程序员技术交流社区

标题: 关于面向对象特性之封装小细节问题 [打印本页]

作者: heima-王鹏    时间: 2014-4-23 14:30
标题: 关于面向对象特性之封装小细节问题
本帖最后由 heima-王鹏 于 2014-4-23 20:12 编辑
  1. #import <Foundation/Foundation.h>
  2. //需求:定义一个成绩类,C语言成绩,OC成绩,总成绩(只读)
  3. @interface Score:NSObject
  4. {        int _cScore;
  5.         int _ocScore;
  6.         int _totalScore;
  7.         double _averageScore;
  8. }
  9. - (void)setCScore:(int)cScore;
  10. - (void)setOcScore:(int)ocScore;
  11. - (int)cScore;
  12. - (int)ocScore;
  13. - (int)totalScore;
  14. @end
  15. @implementation Score
  16. - (void)setCScore:(int)cScore
  17. {
  18.         _cScore = cScore;
  19. <font color="#ff0000">        //_totalScore = _cScore + _ocScore;</font>
  20. }
  21. - (void)setOcScore:(int)ocScore
  22. {
  23.         _ocScore = ocScore;
  24. <font color="#ff0000">        //_totalScore = _cScore + _ocScore;</font>
  25. }
  26. - (int)cScore
  27. {
  28.         return _cScore;
  29. }
  30. - (int)ocScore
  31. {
  32.         return _ocScore;
  33. }
  34. - (int)totalScore;
  35. {
  36.         return _cScore + _ocScore;<font color="#ff0000">// _totalScore;</font>
  37. }
  38. int main ()
  39. {   Score *s = [Score new];
  40.     [s setCScore:80];
  41.     [s setOcScore:90];
  42.     [s setCScore:90];
  43.     int a = [s totalScore];
  44.      NSLog(@"总成绩=%d",a);
  45.     return 0;
  46. }
复制代码
问题:如代码中return _cScore + _ocScore;和 在代码中添加//_totalScore = _cScore + _ocScore;return _totalScore;有什么区别?试了几次好像都没什么区别,但视频中老师说有区别,搞不懂了到底有什么区别?

作者: 程浩    时间: 2014-4-23 15:39
A          return _cScore + _ocScore;
B_totalScore = _cScore + _ocScore;
            return _totalScore;
光看这两句,举个栗子吧:
我们都是要去李明杰老师的班上课对不,
A这种方式是我们直接去找mj报名上课
B这种方式是通过吴倩老师先收集好我们都有谁要报名,再报告给mj
领会下
作者: 魅影穿眸    时间: 2014-4-23 18:03
一个是直接返回,另一个是先保存结果,然后在返回结果




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2