我应该使用超级课吗?

时间:2014-04-19 16:55:25

标签: java superclass super

我正在用java创建一个程序,它可以分解每个任务和每个点,以及它如何影响你的GPA。我正在为一些朋友和我自己做这件事。

首先,这里是程序的链接,以便您可以看到它是如何工作的。 (仍然有bug) http://students.uww.edu/bollesnj07/Program/GPA%20Bot%20v0.4.jar

以下是我在想什么的直观表达。enter image description here

您可以添加个人资料,然后添加条款(学期),然后添加到术语添加课程,并添加课程添加作业。

我希望能够从配置文件中获取信用,并使用它们来计算课程中的值(或作业)

实现这一目标的最佳方法是什么?现在我将它们作为子类(当然是赋值子类,术语的子类,配置文件的术语子类)但是我很难将信息从一个类转移到另一个类。我可能没有正确使用超类我在java上相当新,这是我在学校课外的第一个程序。

任何帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:1)

如果我理解你在说什么,我认为你会混淆Is-aHas-a关系。

  

学期有课程

     

课程有一个作业

这意味着Course不会延伸Term,但CourseTerm是独立的类。但是,TermArrayList可能是Course

我认为你的班级结构中没有特别需要层次结构。

答案 1 :(得分:1)

  当然,

赋值子类,术语的子类,概要的术语子类

这对我来说听起来不对。课程有作业,但作业本身并不是一种课程。让我们考虑一下他们可能采用的方法:

<强>课程

Teacher getTeacher();
Student[] getStudents();
Date[] getLessonTimes();

<强>分配

Teacher getTeacher();
Date getDueDate();
String getTitle();

因此虽然getTeacher()适用于两者,但大部分都不适用。您可以将getTeacher()放入Teachable界面,但其他所有内容都表明它们并不真正相关。为你的其他类计划方法,看看是否有重复,然后根据你决定你的类继承。