簡體   English   中英

從另一個類訪問非靜態變量

[英]access non-static variable from another class

我對訪問在其類中定義非靜態數組的問題。

該數組的元素完全由另一個類(稱為“ add”)添加,所以我也無法到達此類。 在我的課上,我需要從“ A”類(具有數組)中獲取數組,該數組由“ add”填充。 由於它不是靜態的,因此當我為該“ A”類創建新屬性時,將創建新對象,因此忘記填充一個。

我的問題; 有什么辦法可以在不丟失其元素的情況下獲得此非靜態數組?

從描述中很難分辨出來,但是也許您只需要向包含所需數組的類中添加一個“ getter”方法,然后在要訪問該數組的類中的包含該對象的對象上調用該方法即可。 。

public 'ArrayType' getArray() {
    return array;
}

用您的數組類型替換“ ArrayType”,並用您的數組名稱替換“ array”。

這將為您提供對數組的引用,以便您可以對數組中的內容執行操作。

如果您還不知道,這是相當標准的做法,當您需要從另一個類訪問對象的實例變量時。

由於它不是靜態的,因此當我為該“ A”類創建新屬性時,將創建新對象,因此忘記填充一個。

好吧-是的,您需要添加值的實例。 我們無法告訴您如何執行此操作,因為我們對您的代碼知之甚少(畢竟,您還沒有顯示任何代碼)。 它是一個數組的事實是無關緊要的-實例變量的重點是每個實例都有自己的變量集來表示該對象的狀態。 如果需要特定對象的狀態,則需要對該對象的引用。

順便說一句,您通常不應該直接訪問其他類的變量-變量應該是私有的,具有在適當情況下訪問數據的屬性。 (這也不意味着每個變量都具有一個屬性。通常,您根本不想直接公開該值-相反,您公開的是作為整體作用於對象的方法。在不知道具體內容的情況下很難具體說明您的對象是用來代表的。)

暫無
暫無

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

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