[英]How to Access non static variable from Another Class without Creating New Object
[英]How to Access Variable from Another Class without Creating New Object
我過長的標題說明了這一切......我希望能夠在不創建新對象的情況下從另一個類訪問變量。
目前,我知道如何訪問另一個類的變量的唯一方法是:
Control control = new Control;
int dirtCount = control.dirtCount;
但是,如果我想在我的污垢對象中訪問此變量,我將不得不為每個變量創建一個新的Control對象。 這創造了無盡的循環......
如何在不創建新對象的情況下訪問變量?
(如果你想看到我的其余代碼,我可以發布它。我認為這部分是最相關的:))
一種方法是將變量聲明為static
,這意味着它是一個類變量 (它與實例變量不同)。 從Java Tutorial (強調我的):
它們與類相關聯,而不是與任何對象相關聯。 該類的每個實例共享一個類變量,該變量位於內存中的一個固定位置。 任何對象都可以更改類變量的值,但也可以在不創建類實例的情況下操作類變量 。
在Control
類中:
public class Control {
public static int dirCount;
// ...
}
並且您可以在不創建實例的情況下使用它:
int dirCount = Control.dirCount;
注意:
如果您希望該變量是private
,則可以定義static
getter方法:
public static int getDirCount() {
return dirCount;
}
你可以用這個方法調用
int dirCount = Control.getDirCount();
在java中,類可以有兩種類型的成員變量
1)實例變量 - 它們是用該類的每個對象創建的,並且可以由該類的對象訪問。
2)類變量 - 它們屬於類意味着每個對象可以共享同一個變量,並且可以通過類名訪問
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.