Java筆記丨16 變數及傳遞
阿新 • • 發佈:2018-12-17
基本型別變數與引用型變數
基本型別:其值直接存在變數中
引用型的變數除佔據一定記憶體空間之外,它所引用的物件實體(由new建立)也要佔據一定空間
欄位變數與區域性變數
前者是在類中,後者是在方法中定義的變數或方法的參變數
從記憶體的角度看
儲存位置,欄位變數為物件的一部分、存在於堆中,區域性變數是存在於棧中
生命週期不同
初始值:欄位變數可以自動賦初值,區域性變數則須顯式賦值
class Test(){ int a;//自動賦初值 void m{ int b; System.out.println(b);//編譯不能通過,需要初始化 } }
從語法角度看
欄位變數屬於類,可以用public,private,static,final修飾
區域性變數不能被訪問控制符及static修飾
都可以被final修飾
變數的傳遞
呼叫物件方法時,要傳遞引數。在傳遞引數時,
Java是值傳遞,即,將表示式的值賦值給形式引數
對於引用型變數,傳遞的值是引用值,而不是複製物件實體。可以改變物件的屬性
示例:TransByValue.java
public class TransByValue { public static void main (String[] args) { int a = 0; modify (a); System.out.println(a);//result:0 int [] b = new int [1]; modify(b); System.out.println(b[0]); //result:1 } public static void modify (int a) { a++; } public static void modify (int[] b) { b[0] ++; b = new int[5]; } }
變數的返回
方法的返回:
返回基本型別
返回引用型別。它就可以存取物件實體
Object getNewObject(){
Object obj=new Object();
return obj;
}
呼叫時:Object p=GetNewObject();