如果我想創建一個將人員添加到List的表單,我如何從另一個類訪問該List?我在哪裏定義該列表,以便其他類可以訪問成員,大小等?例如,如果我有具有用於我的表單的GUI的Class Foo,以及用於向List添加和刪除人員的按鈕,那麼將List聲明爲Class Foo的私有實例變量是有意義的。但是,如果我有另一個類Class Bar,它如何獲取當前在該List中的值來更新其他圖形組件?或者是一般地聲明List的錯誤地方?謝謝。有權訪問Java中其他類的私有變量
回答
其他班級不應該觸摸列表。他們應該向Foo詢問關於該列表的信息,此時Foo可以與其私人列表交談。
你不應該讓他們直接訪問私有變量(實際上外部類甚至不會看到它)。
要給/修改列表信息,Foo類應該有方法與私有列表進行交互。例如,你可以有一個名爲getSize()的方法,它將返回列表的大小。
我假設在第一句中有'沒有'缺失 – 2010-06-10 04:46:15
你說得對。我做了改變。 – Pran 2010-06-10 15:19:53
在最簡單的情況下,使用一個getter函數:
然後其他對象可以直接在列表上進行操作。更面向對象,包列表訪問方法在你的對象,並不會直接返回列表對象,如:
Object getItemFromList (int i) { return list.get(i); }
正如我在my answer to your previous question說,我不認爲數據的列表所屬在gui組件中。我認爲你應該有一個應用程序核心,一個服務,如果你想,你可以使用gui組件,而不需要耦合兩者。
這樣就可以在不更改核心應用程序代碼的情況下創建Web客戶端,命令行客戶端,SWT客戶端等。你只需寫一個新的GUI並在那裏注入服務。一個GUI應該可以訪問服務,但不能成爲一個。
- 1. 訪問java中其他類的私有變量
- 2. 從其他類訪問私有成員
- 3. 如何從java中的其他類訪問私有類內部變量的變量?
- 4. 類中的私有變量可以從Java中的main訪問?
- 5. 訪問類C++的私有變量
- 6. PHP私有變量訪問
- 7. 訪問私有變量
- 8. 未定義訪問成員變量的訪問權限(公有或私有)
- 9. 通過javascript中的私有方法訪問私有變量
- 10. 其他類的訪問變量
- 11. Objective C訪問其他類的變量?
- 12. 訪問其他類中的多個對象的私有成員向量
- 13. 通過反射訪問Java中的私有變量
- 14. 如何訪問其他模板類實例的私有成員?
- 15. 從其他類訪問int變量
- 16. 從其他類訪問變量
- 17. 如何通過其他變量從java類訪問常量?
- 18. 如何訪問C++/CLI管理類中的私有變量
- 19. 調用Parent方法並訪問父類中的私有變量?
- 20. 如何使const C++類訪問所有其他類的私有成員
- 21. 如何訪問私有變量?
- 22. 訪問私有變量對象
- 23. 發送允許訪問私有變量
- 24. 關於訪問私有成員變量
- 25. 訪問一個私有變量
- 26. 如何訪問私有變量
- 27. 訪問其他類中對象的最有效的做法:Java
- 28. 派生類訪問基類私有變量時出錯
- 29. C#如何從Main()中訪問私有類變量並將其公開化?
- 30. 訪問私有變量的Java靜態方法
你能舉一個例子說明如何工作嗎?我想我很困惑,因爲我只聲明瞭一個Foo類型的對象,然後如果我有一個返回List大小的函數,我將不得不從Bar類創建一個新對象來使用成員函數getSize right ? – Crystal 2010-06-10 04:37:40
爲什麼Bar不會使用Foo的現有實例? – 2010-06-10 04:41:32
Bar如何使用在另一個類中創建的實例? – Crystal 2010-06-10 04:46:46