簡體   English   中英

我應該使用超級類嗎?

[英]Should I be using Super Classes?

我正在用 Java 創建一個程序,它分解了每個作業和每個點以及它如何影響您的 GPA。 我為一些朋友和我自己做這個。

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

這是我在想什么的直觀表示。在此處輸入圖片說明

您可以添加個人資料,然后添加學期(學期),然后在學期中添加課程,並在課程中添加作業。

例如,我希望能夠從個人資料中獲得學分,並使用它們來計算課程(或作業)中的值

實現這一目標的最佳方法是什么? 現在我將它們作為子類(當然是作業子類,學期的課程子類,個人資料的學期子類)但是我很難將信息從一個班級轉移到另一個班級。 有可能我沒有正確使用超類我是 Java 新手,這是我在學校課程之外的第一個程序。

任何幫助將不勝感激。 謝謝你。

如果我理解你在說什么,我認為你混淆了Is-aHas-a關系。

一個學期有一個課程

課程有作業

這意味着Course不擴展Term ,但CourseTerm是獨立的類。 然而,它可能是Term Is-a ArrayList which Has-a Course

我認為您的類結構中沒有特別需要層次結構。

課程的作業子類,學期的課程子類,個人資料的學期子類

這對我來說聽起來不對。 課程有作業,但作業本身並不是一種課程。 讓我們想想他們可能有哪些方法:

課程

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

任務

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

因此,盡管getTeacher()對兩者都適用,但大多數不是。 您可以將getTeacher()放入Teachable接口中,但其他所有內容都表明它們並不真正相關。 為您的其他類規划方法並查看是否有任何重復項,然后根據該決定您的類繼承。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM