![名师讲坛: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=1739266285-bFOJlqhhpbN6ZRPpMopagCPtXP6h5KXh-0-2c30f86188b37d6538e2bc82b9bd44b6)
2.定义出需要的方法(普通方法、构造方法)
在本例中设计两个构造方法,一个是无参的构造方法,另外一个构造方法可以为5个属性进行赋值,如表5-2所示。
表5-2 需要使用的方法
![](https://epubservercos.yuewen.com/DE8B7B/15253389304122106/epubprivate/OEBPS/Images/Figure-T101_124002.jpg?sign=1739266285-MLEtrMqog7f0AMWBjfsoJ9QzY9cfbN9a-0-124570fbafb05d3c5689afb7f8db6e47)
根据以上的设置,本范例的类图如图5-10所示。
![](https://epubservercos.yuewen.com/DE8B7B/15253389304122106/epubprivate/OEBPS/Images/Figure-P102_124003.jpg?sign=1739266285-Lsa7MfgW33R90U6nh2h4RwgJTGSn1eQo-0-11f46ebb22bf8a47f3f9bef142e422fa)
图5-10 程序分析类图
按照以上的类图,编写具体的代码如下。
【例5.15】实现代码
![](https://epubservercos.yuewen.com/DE8B7B/15253389304122106/epubprivate/OEBPS/Images/Figure-P102_124004.jpg?sign=1739266285-atq39Uo9xIrs7FkHQRbD5OxJnFz5NTTC-0-3125c2862bde3bb775cd530a6251d91a)
编写测试类,测试以上代码:
![](https://epubservercos.yuewen.com/DE8B7B/15253389304122106/epubprivate/OEBPS/Images/Figure-P103_124006.jpg?sign=1739266285-jQ5ej8oc3OdxXDNESVLKmKXLbbvQy8ZH-0-1358dbfb3d5aa1fdf45886a92ac58bfb)
程序执行结果:
![](https://epubservercos.yuewen.com/DE8B7B/15253389304122106/epubprivate/OEBPS/Images/Figure-P104_124007.jpg?sign=1739266285-ghivaoFCx2aP9y07IzcjjoAmeptpPbQe-0-18146cb43cdeb3c8235c2387ea9fb49f)
以上的程序只是为读者简单地介绍了类的基本分析思路,实际的问题肯定会比本道例题要复杂得多,此时,就需要读者耐心分析,只有掌握好面向对象中的各个概念,才可以对程序代码进行更加合理的分析与设计。
提示
先从最基本的类开始分析。
读者可以试着按照以上程序的分析思路,分析一下身边的事物。例如,计算机、手机等,以加深对类的认识。