2017-06-05 83 views
0

每當我開始一個新的java項目時,我總是遇到同樣的問題,學習:我永遠不知道要上什麼課,以及要把什麼放在哪裏。我很難將代碼組織到不同的類中。當我創建一個新項目時,我永遠不知道何時創建新類或做什麼類,而且我很難組織我的代碼

例如,我正在編寫一個實驗程序。它涉及太空飛船,一些敵方太空飛船和一些友好太空飛船,一把槍射向他們,等等。我想過創建一個宇宙飛船班,但後來不確定這是否應該是兩班(一個是敵方飛船,一個是友軍飛船)。但是後來我認爲它應該是一類友好和敵方飛船可以成爲太空船的例子。然而,敵人和友軍飛船在整個實驗過程中都有不同的用途,所以也許不會。我也知道我需要創建這些飛船的JLabels,並且不知道這些應該是Spaceship類實例的變量還是它們應該是在主方法中創建的東西。這一直持續下去。

有沒有人有任何提示知道應該如何組織代碼,應該由哪些類組成,等等?因爲無論我寫多少程序,這對我來說似乎都不會變得更容易。

+0

這個問題對於StackOverflow太寬泛了。這通常是伴隨練習而來的,有一個能夠糾正你的人(比如老師或高級同事)。最終你會爲此發展一種直覺。重要的是不要一個人工作。 – RealSkeptic

回答

0

你的問題的答案取決於你如何理解面向對象的概念。 根據您的要求,您需要製作Spaceship界面或超級班。使敵方飛船和友方飛船成爲Spaceship的子級。同樣,你需要製作單獨的槍類。根據您需要爲每個對象創建對象的功能。你可以爲你的飛船製作jLabel類。

你的主要方法將在一個類是你的應用程序的入口。根據您的應用程序中的類或層,您可以擁有不同的包。您還應該事先了解一些設計模式,以解決應用程序開發中出現的常見問題。

+0

你是怎麼知道我只需要一個班級而不是兩個班級的,你怎麼知道我需要一個班級?你是如何做出這個決定的?另外,你爲什麼認爲我應該創建一個JLabel飛船課程? – jmao

+0

因爲每個實體都應該是面向對象編程中的一個對象。你應該把每件事看作一個對象。對象代表一個類。具有不同屬性和行爲的宇宙飛船應該是不同的對象。或者即使他們有共同的屬性/行爲,你應該考慮多態。這是一種很好的做法,也是你在面向對象編程中的工作方式。 –

+0

我可以用某些屬性創建一個Spaceship類,然後有兩個額外的類,EnemySpaceship和FriendlySpaceship,每個類都擴展了Spaceship類?我認爲這是一個好主意,因爲它們共享許多屬性和行爲,但它們也具有不同的屬性和行爲。 – jmao

相關問題