
上QQ阅读APP看书,第一时间看更新
5.6 实例讲解——类设计分析
学习了以上的知识之后,下面来分析一道程序,以巩固之前所学习到的知识。在具体题目讲解之前先给出一些类的基本设计思路:
(1)根据要求写出类所包含的属性;
(2)所有的属性都必须进行封装(private);
(3)封装之后的属性通过setter和getter设置和取得;
(4)如果需要可以加入若干构造方法;
(5)再根据其他要求添加相应的方法;
(6)类中的所有方法都不要直接输出,而是交给被调用处输出。
题目:
定义并测试一个名为Student的类,包括属性有“学号”、“姓名”以及3门课程“数学”、“英语”和“计算机”的成绩,包括的方法有计算3门课程的“总分”、“平均分”、“最高分”及“最低分”。
1.本类中的属性及类型
本类中的属性类型如表5-1所示。
表5-1 Student类的属性及类型

2.定义出需要的方法(普通方法、构造方法)
在本例中设计两个构造方法,一个是无参的构造方法,另外一个构造方法可以为5个属性进行赋值,如表5-2所示。
表5-2 需要使用的方法

根据以上的设置,本范例的类图如图5-10所示。

图5-10 程序分析类图
按照以上的类图,编写具体的代码如下。
【例5.15】实现代码

编写测试类,测试以上代码:

程序执行结果:

以上的程序只是为读者简单地介绍了类的基本分析思路,实际的问题肯定会比本道例题要复杂得多,此时,就需要读者耐心分析,只有掌握好面向对象中的各个概念,才可以对程序代码进行更加合理的分析与设计。
提示
先从最基本的类开始分析。
读者可以试着按照以上程序的分析思路,分析一下身边的事物。例如,计算机、手机等,以加深对类的认识。