關於Java中被static修飾的靜態變量 (類變量)


  首先Goo某的翻譯, static :(adj) 靜止的,不變的。

  在所有程序編譯運行的過程中,變量都是由系統自動分配內存進行存儲的。

  在這個存儲過程中,static所修飾的變量(也就是靜態變量),它所被分配的空間是一直伴隨程序運行的,空間將會保持到程序的結束關閉,才會被釋放。

  換句話說:程序運行時,系統分配給靜態變量的內存是一直存在的,除非程序被終止。

  根據這一點來看,假若在定義一個類的過程中,定義了一個static修飾的變量,那么這個類在被加載的同時,被static修飾的變量就存在於內存當中了,這樣一來就獨立於該類的所有對象,被該類所有對象共享,將對象相關的變成了類相關,所以靜態變量也可以稱之為類變量。

  假設一個類中某個屬性被static所修飾,那么就可以通過"類名.屬性名"來訪問。

  例子:

 1 public class Demo{
 2     public static void main(String[] args){
 3         Worker w1 = new Worker("Jack");
 4         w1.startWork();
 5         System.out.println("當前開工的總人數:"+Worker.totle);
 6         Worker w2 = new Worker("Rose");
 7         w2.startWork();
 8         System.out.println("當前開工的總人數:"+Worker.totle);
 9     }
10 }
11 
12 class Worker{
13     String name;
14     static int totle = 0;
15 16 public Worker(String name){ 17 this.name = name; 18 } 19 20 public void startWork(){ 21 totle++; 22 System.out.println("工人:"+this.name+"開工了。"); 23 } 24 }

  運行結果:

  值得注意的一點是:例子中的實例變量name是在創建對象時,通過構造器初始化的。

  而被static修飾的類變量totle在類的加載過程中,就被初始化的。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM