程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java變量的差別淺析

java變量的差別淺析

編輯:關於JAVA

java變量的差別淺析。本站提示廣大學習愛好者:(java變量的差別淺析)文章只能為提供參考,不一定能成為您想要的結果。以下是java變量的差別淺析正文


類變量也叫靜態變量,也就是在變量前加了static 的變量;
實例變量也叫對象變量,即沒加static 的變量;
二者差別在於:
類變量(靜態變量)是一切對象共有,個中一個對象將它值轉變,其他對象獲得的就是轉變後的成果,而且類變量是可以直接經由過程類名來挪用的 如:A.xingS;
而實例變量則屬對象公有,某一個對象將其值轉變,不影響其他對象,實例變量望文生義是屬於實例的,所以只能經由過程實例來挪用 如:A a=new A(); a.name;
舉個不太適當的例子:類變量就比如一小我的姓氏,實例變量就相當於人的名字,假如它父親把姓改了,那它一切的兄弟姐妹姓都得改,然則它們的名字照樣各用各的。
例:

public class A{ 
static  int xingS = 0; //類變量  
private int name = 0; //實例變量  
String id; //實例變量 
private String colorType; //實例變量  
private int size; //實例變量  
private static String depart; //類變量   f
inal String name="zwm"; //常量
}
public class B{  
public void main (String[] args){      
A son1= new A();      
A son2= new A();      
son1.xingS = 3;  // 同等於
A.xingS = 3;      
son1.name = 4 ;      
System.out.println(son2.xingS); //成果為3      
//類變量是針對一切對象的,所以son1轉變xingS,son2的a也轉變      
System.out.println(son2.name); //成果為0      
//實例只轉變本身的,所以son1對象的name轉變,不影響對象son2的name變量 
}
}

類變量又叫靜態成員變量,它不須要創立對象便可以曾經在內存中存在了,而在創立實例對象的時刻,
內存中會為每個實例對象的每個非靜態成員變量開拓一段內存空間,用來存儲這個對象一切的非靜態成員變量值。
即便兩個分歧的實例對象是屬於統一個class類,然則它們的同名非靜態成員變量在內存中占用的空間是分歧的,
而靜態成員變量也就是類變量雷同。一切的實例對象都共用一個類變量,內存中只要一處空間是放這個類變量值的。
是以,假如一個對象把類變量值改了,別的一個對象再取類變量值就是悛改以後的了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved