簡體   English   中英

在我的主類中引用全局變量?

[英]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.

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