![名师讲坛:Java开发实战经典(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/824/26793824/b_26793824.jpg)
上QQ阅读APP看书,第一时间看更新
5.6 实例讲解——类设计分析
学习了以上的知识之后,下面来分析一道程序,以巩固之前所学习到的知识。在具体题目讲解之前先给出一些类的基本设计思路:
(1)根据要求写出类所包含的属性;
(2)所有的属性都必须进行封装(private);
(3)封装之后的属性通过setter和getter设置和取得;
(4)如果需要可以加入若干构造方法;
(5)再根据其他要求添加相应的方法;
(6)类中的所有方法都不要直接输出,而是交给被调用处输出。
题目:
定义并测试一个名为Student的类,包括属性有“学号”、“姓名”以及3门课程“数学”、“英语”和“计算机”的成绩,包括的方法有计算3门课程的“总分”、“平均分”、“最高分”及“最低分”。
1.本类中的属性及类型
本类中的属性类型如表5-1所示。
表5-1 Student类的属性及类型
![](https://epubservercos.yuewen.com/DE8B7B/15253389304122106/epubprivate/OEBPS/Images/Figure-T101_11268.jpg?sign=1738836408-cf8vajc5pxQwiVBWjoENoEa8GGX7gLCy-0-3b626b84b35c110056723575f3632136)
2.定义出需要的方法(普通方法、构造方法)
在本例中设计两个构造方法,一个是无参的构造方法,另外一个构造方法可以为5个属性进行赋值,如表5-2所示。
表5-2 需要使用的方法
![](https://epubservercos.yuewen.com/DE8B7B/15253389304122106/epubprivate/OEBPS/Images/Figure-T101_124002.jpg?sign=1738836408-JUfSa5fx2P3JlUdd5eWDFhmY9ATVkagF-0-98d702a3c6d9ec8b6d35fdf5341f60be)
根据以上的设置,本范例的类图如图5-10所示。
![](https://epubservercos.yuewen.com/DE8B7B/15253389304122106/epubprivate/OEBPS/Images/Figure-P102_124003.jpg?sign=1738836408-HUWJqH6Nk4Pi8S5RE9KUwGBT0fIrBseY-0-da01b2446984ec0e77e7bcd83816ff6c)
图5-10 程序分析类图
按照以上的类图,编写具体的代码如下。
【例5.15】实现代码
![](https://epubservercos.yuewen.com/DE8B7B/15253389304122106/epubprivate/OEBPS/Images/Figure-P102_124004.jpg?sign=1738836408-W7MVCv5T7QZn6z3f8UJQbx84mYUV61N6-0-dd3a2347a63dbb8881570fd3e7e73a8c)
编写测试类,测试以上代码:
![](https://epubservercos.yuewen.com/DE8B7B/15253389304122106/epubprivate/OEBPS/Images/Figure-P103_124006.jpg?sign=1738836408-qoDz6VzBWNTofB6Nw5S01TU4g0FtijW0-0-7d5c70c1d7156ead5099262e582789b4)
程序执行结果:
![](https://epubservercos.yuewen.com/DE8B7B/15253389304122106/epubprivate/OEBPS/Images/Figure-P104_124007.jpg?sign=1738836408-5S1DK1dsEw6rWxBRPbSxCpVQJI36BFnQ-0-10795754b4da8bb315eb3ccb67b4928f)
以上的程序只是为读者简单地介绍了类的基本分析思路,实际的问题肯定会比本道例题要复杂得多,此时,就需要读者耐心分析,只有掌握好面向对象中的各个概念,才可以对程序代码进行更加合理的分析与设计。
提示
先从最基本的类开始分析。
读者可以试着按照以上程序的分析思路,分析一下身边的事物。例如,计算机、手机等,以加深对类的认识。