【问题标题】:Should I be using Super Classes?我应该使用超级课程吗?
【发布时间】:2014-06-04 01:38:02
【问题描述】:

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

首先是该程序的链接,以便您了解它是如何工作的。 (仍然有错误) http://students.uww.edu/bollesnj07/Program/GPA%20Bot%20v0.4.jar

这是我所想的直观表示。

您可以添加个人资料,然后添加学期(学期),然后在学期中添加课程,然后在课程中添加作业。

例如,我希望能够从个人资料中获取学分,并使用它们来计算课程(或作业)中的值

实现这一目标的最佳方法是什么?现在我将它们作为子类(当然是作业子类,学期的课程子类,个人资料的学期子类)但是我很难将信息从一个班级转移到另一个班级。可能我没有正确使用超类我在java方面还很新,这是我在学校课程之外的第一个程序。

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

【问题讨论】:

    标签: java superclass super


    【解决方案1】:

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

    一个学期有一个课程

    课程有作业

    这意味着Course 没有扩展Term,但CourseTerm 是独立的类。但是,可能是一个Term 是-a ArrayList 有-a Course

    我认为您的类结构中没有特别需要层次结构。

    【讨论】:

    • 是的。我混淆了 Has-a 和 is-a。所以我根本不会子类,我只会在我的任期内创建一个课程的数组列表?我如何在一门课程中说获得该学期的 gpa?我现在没有时间研究这个,但今晚晚些时候会。谢谢你
    【解决方案2】:

    assignments 课程的子类,学期的课程子类,个人资料的学期子类

    这对我来说听起来不对。课程有作业,但作业本身并不是课程的一种。让我们想想他们可能有什么方法:

    课程

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

    作业

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

    所以尽管getTeacher() 对两者都适用,但大多数都不是。您可以将getTeacher() 放入Teachable 接口中,但其他所有内容都表明它们并不真正相关。为你的其他类规划方法,看看是否有任何重复,然后根据它决定你的类继承。

    【讨论】:

    • 我确实需要这样做,因为我有许多重复的方法。正如我在另一个答案中所说,我现在没有时间研究这个,但今晚晚些时候会再次回复。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多