簡體   English   中英

靜態變量超出范圍,錯誤:找不到符號

[英]Static variable out of scope, Error: cannot find symbol

錯誤是:

找不到符號System.out.println("value of count" + count);

符號:

變數

位置:

類同步

我聲明count變量是static ,這不是說每個類都可以訪問它嗎?

class a extends Thread 

{

public static int count=0;

public void run()

 {

   for(int i=1;i<=100;i++){

   count++;
    }
  }
}

class b extends Thread {

public void run(){

  for(int i=1;i<=100;i++){

  count++;
  }
 }
}

class synchronize {

public static void main(String args[]) {

  a obj =new a();

  b obj1=new b();

  obj.start();

  obj1.start();

  System.out.println("value of count "+count) ;

 }
}

count變量被聲明為成員a類。

所以,如果你改變:

System.out.println("value of count "+count);

至:

System.out.println("value of count " + a.count);

所以,你正在訪問count變量作為成員a類的,那么你的synchornize類應該能夠“看見” count變量。

此外,您可能還想使用類ba.count

class b extends Thread {

    public void run(){

      for(int i=1;i<=100;i++){

          a.count++;
       }
    }
}

靜態變量對於類的所有實例都具有單個值。

您必須按類名訪問靜態變量

而不是這個

System.out.println("value of count "+count) ;

用這個

System.out.println("value of count "+a.count) ;

既然是公共的和靜態,你是,你將能夠訪問正確的count變量在你a隨時隨地類代碼。

但是,您無法僅使用變量count來訪問它。

你的其他課程不知道任何count變量,但他們知道你a課程。 所以,你可以使用a.count訪問count在變量a從您的任何其他類的類。

暫無
暫無

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

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