1. 程式人生 > >Java筆記丨16 變數及傳遞

Java筆記丨16 變數及傳遞

基本型別變數與引用型變數

基本型別:其值直接存在變數中

引用型的變數除佔據一定記憶體空間之外,它所引用的物件實體(由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();