實例變數
實例變數
實例變數是指在類的聲明中,屬性是用變數來表示的。這種變數就稱為實例變數,是在類聲明的內部但是在類的其他成員方法之外聲明的。
類的每個對象維護它自己的一份實例變數的副本。
實例變數:定義在類中但在任何方法之外。(New出來的均有初始化)
當一個對象被實例化之後,每個實例變數的值就跟著確定;
實例變數在對象創建的時候創建,在對象被銷毀的時候銷毀;
實例變數的值應該至少被一個方法、構造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變數信息;
實例變數可以聲明在使用前或者使用后;
訪問修飾符可以修飾實例變數;
實例變數對於類中的方法、構造方法或者語句塊是可見的。一般情況下應該把實例變數設為私有。通過使用訪問修飾符可以使實例變數對子類可見;
與局部變數
局部變數:定義在方法之中的變數。
1. 局部變數要先賦值,再進行運算,而實例變數均已經賦初值。(這是局部變數和實例變數的一大區別)
2. 實例變數的對象賦值為null。
3. 局部變數不允許範圍內定義兩個同名變數。實例變數的作用域在本類中完全有效,當被其他的類調用的時候也可能有效。
4. 實例變數和局部變數允許命名衝突。
public class Sample
{
private int a=1; //實例變數
public void b()
{
int a=2; //局部變數
System.out.println("局部變數:a="+a);
System.out.println("實例變數:a="+this.a);//局部變數的作用域內引用實例變數:this.變數名
}
{
new Sample().b();
}
}
運行輸出:
局部變數:2
實例變數;1
是一種通過類實例參照的 i,因此屬在某個既定對象。實例變數的字母為@,例如:
@hello = hello
實例變數能從它所屬的類外獲得,但只能通過accessor方法。