[英]Referencing global variables in my main class?
我遇到了從主類引用/訪問全局變量的需求。 我正在使用另一個涉及線程的類(用於網絡連接)。 基本上,我想知道是否可以通過以下方式做到這一點(我已經檢查了並且沒有任何編譯錯誤):
public class One
{
public static int number;
public static void main(String [] args)
{
number = 5;
Two two = new Two();
System.out.println(number);
}
}
public class Two
{
public Two()
{
One.number = 10;
}
}
如果可以,那可以接受嗎? 有沒有更好的方法(除了正常傳遞參數外)?
感謝您抽出寶貴的時間閱讀本文檔,如果讓我感到困惑(對xx感到厭倦),則對不起。
實現此目的的首選方法是將其作為私有變量,並向包含信息的類添加訪問器和更改器方法,例如:
//Accessor
public int getNumber()
{
return number;
}
//Mutator
public void setNumber(int num)
{
number = num;
}
我想您確實說過“除了傳遞參數外”,但這是您可以接受的做到這一點的可接受方法。 這樣,您可以防止外部類錯誤地處理數據等。
可以訪問它,但是如果您正在使用線程,請確保多個線程不會同時寫入該變量。 在這種情況下,您可以使用同步塊進行寫操作,也可以使用鎖定機制。 關於這一點也有一個建議。 將該變量設為私有,並使用getter和setter對其進行訪問以限制可見性和濫用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.