回覆列表
-
1 # 使用者2799474536354
-
2 # 小飛飛的小朋友
作用範圍的區別比如:
publicvoidsayHello(){
Stringname="zhangsan";
System.out.print("hello"+name);
}
在這個方法中name就是一個區域性變數,當方法執行完成以後name佔用的記憶體空間就會銷燬
classA{
Stringname;
publicA(Stringname){
this.name=name
}
}
a=newA("zhangsan")//例項化
System.out.print(a.name)
這個時候name就是一個例項變數,它的作用範圍就是classA必須例項化才可以使用
1、類變數也叫靜態變數,也就是在變數前加了static 的變數;
2、例項變數也叫物件變數,即沒加static 的變數;
3、類變數和例項變數的區別在於: 類變數是所有物件共有,其中一個物件將它值改變,其他物件得到的就是改變後的結果; 而例項變數則屬物件私有,某一個物件將其值改變,不影響其他物件; 類變數又叫靜態成員變數,它不需要建立物件就可以已經在記憶體中存在了。 類就像一份說明書,說明這種類的例項物件的規格。而在建立例項物件的時候,記憶體中會為每一個例項物件的每一個非靜態成員變數開闢一段記憶體空間,用來儲存這個物件所有的非靜態成員變數值。即使兩個不同的例項物件是屬於同一個class類,但是它們的同名非靜態成員變數在記憶體中佔用的空間是不同的。 而靜態成員變數也就是類變數不同。所有的例項物件都共用一個類變數,記憶體中只有一處空間是放這個類變數值的。因此,如果一個物件把類變數值改了,另外一個物件再取類變數值就是改過之後的了。