Java 類變量與實例變量的區別


Java 中靜態變量和實例變量區別

 靜態變量屬於類,該類不生產對象,通過類名就可以調用靜態變量。

 實例變量屬於該類的對象,必須產生該類對象,才能調用實例變量。

在程序運行時的區別:

實例變量屬於某個對象的屬性,必須創建了實例對象,其中的實例變量才會被分配空間,才能使用這個實例變量。

 靜態變量不屬於某個實例對象,而是屬於類,所以也稱為類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。

總之,實例變量必須創建對象后才可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。

例如,對於下面的程序,無論創建多少個實例對象,

永遠都只分配了一個 staticInt 變量,並且每創建一個實例對象,這個 staticInt 就會加 1;但是,每創建一個實例對象,就會分配一個 random

即可能分配多個 random ,並且每個 random 的值都只自加了1次。

請看如下代碼:

private static int staticInt=2;//聲明靜態變量,並賦值
private int random=2;//聲明實例變量,並賦值
// 靜態變量屬於類,該類不生產對象,通過類名就可以調用靜態變量。
// 實例變量屬於該類的對象,必須產生該類對象,才能調用實例變量。
public static void main(String[] arges){//定義main方法
System.out.println(staticInt);
StaticTest test=new StaticTest();//創建對象
System.out.println(test.random);//通過test調用變量
}


免責聲明!

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



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