2012-04-14 43 views
0

我有一個Java分配,我想看看我目前是在正確的軌道上創建一個靜態對象...是否有可能在一個靜態方法使用Java

問題是我要創建一個新的類名稱測試器,它聲明我不需要任何實例變量或構造函數。除此課程外,我還有4個其他課程,分別是Product類,Lineitem類,Inventory類和Money類。

接下來我要添加一個方法:private static void addTestItems(inventory theInventory)

此方法允許我將四種不同類型的物品添加到清單中。對於每一個,我需要創建一個產品對象,然後創建一個包含該產品的Lineitem對象,然後使用addItem()(我在Inventory類中聲明的方法)添加產品對象。

該方法是私有的,因爲它只是另一個主要方法的助手:public static void test()在此方法中,我將使用此方法打印出一些輸出,說明已添加到清單中的產品。

什麼我管理研究是在這樣的類中,我不需要聲明實例變量和構造函數。來源:http://www.allinterview.com/showanswers/62694.html中的答案#2。

但是,我想知道的是,如果我能夠在此方法中創建一個靜態產品對象。如果不是,我應該如何去宣佈產品對象被添加到庫存類中?

除了我的好奇心,通過不聲明實例變量和構造函數並直接使用靜態方法,這是否意味着這是一個靜態類?有沒有人有一個關於靜態類或靜態方法的好例子,或者與我所面對的非常相似?

順便說一下,我使用BlueJ來完成我的任務。我想感謝大家閱讀或幫助我解決這個問題如果你覺得這個問題很糟糕,請發表評論,並告訴我如何改進。順便一提。

+0

「靜態類」只是一個普通的類。事實上,任何其他類型都是可憎的(幸好你不需要擔心)。 – 2012-04-14 03:37:41

+0

@BrendanLong「靜態類」不僅僅是一個普通的類。 'class Outer {int x; static class AStaticClass {} class ANormalClass {void meth(){Outer.this.x = 5; }}}' – emory 2012-04-14 04:03:01

+0

@emory - 這只是術語的區別。通過正常的課程,我的意思是頂級。我完全知道內部類如何在Java中工作,我的觀點是頂級類自動是靜態類(內部類對初學者不重要,因爲它們只是使代碼難以閱讀)。 – 2012-04-14 04:13:19

回答

3

難道你不能只是在類上聲明一個靜態變量來保存你的庫存嗎?

private static List<inventory> list = new LinkedList<inventory>(); 

它不需要在構造函數或方法中,它可以只是您的變量聲明。由於你的類是靜態的,它只會被初始化一次。

+0

類本身總是靜態的 - 它只會被實例化一次,因爲**變量是靜態的**。 – 2012-04-14 03:38:17

相關問題