我正在用java创建一个程序,它可以分解每个任务和每个点,以及它如何影响你的GPA。我正在为一些朋友和我自己做这件事。
首先,这里是程序的链接,以便您可以看到它是如何工作的。 (仍然有bug) http://students.uww.edu/bollesnj07/Program/GPA%20Bot%20v0.4.jar
以下是我在想什么的直观表达。
您可以添加个人资料,然后添加条款(学期),然后添加到术语添加课程,并添加课程添加作业。
我希望能够从配置文件中获取信用,并使用它们来计算课程中的值(或作业)
实现这一目标的最佳方法是什么?现在我将它们作为子类(当然是赋值子类,术语的子类,配置文件的术语子类)但是我很难将信息从一个类转移到另一个类。我可能没有正确使用超类我在java上相当新,这是我在学校课外的第一个程序。
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
如果我理解你在说什么,我认为你会混淆Is-a和Has-a关系。
学期有课程
课程有一个作业
这意味着Course
不会延伸Term
,但Course
和Term
是独立的类。但是,Term
是ArrayList
可能是Course
。
我认为你的班级结构中没有特别需要层次结构。
答案 1 :(得分:1)
当然,赋值子类,术语的子类,概要的术语子类
这对我来说听起来不对。课程有作业,但作业本身并不是一种课程。让我们考虑一下他们可能采用的方法:
<强>课程强>
Teacher getTeacher();
Student[] getStudents();
Date[] getLessonTimes();
<强>分配强>
Teacher getTeacher();
Date getDueDate();
String getTitle();
因此虽然getTeacher()
适用于两者,但大部分都不适用。您可以将getTeacher()
放入Teachable
界面,但其他所有内容都表明它们并不真正相关。为你的其他类计划方法,看看是否有重复,然后根据你决定你的类继承。