簡體   English   中英

Java中的靜態變量問題

[英]Issue with static variables in Java

我需要以下代碼的輸出說明:

class Stats
{
    static int a = 10;
    int b = 20;
    void printMe()
    {
        System.out.println(a+b);
    }
}

public class Static
{
    public static void main(String args[])
    {
        Stats s1 = new Stats();
        Stats s2 = new Stats();
        s1.b = 30;
        s1.printMe();
        s1.a = 20;
        s2.printMe();
    }
}

輸出:40 40

我希望它是40和50,因為應該只有一個靜態變量“ a”的副本,該副本可以通過引用“ s1”修改為20。

a是靜態的也被稱為“ 類變量 ”,的值a將在所有實例等於Stats

因此在第一次調用: a就是等於10和b是等於30為S1,所以a+b是等於40,

以及在所述第二呼叫: a就是等於20和b是等於20將s2,所以a+b是等於40

暫無
暫無

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

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