1. 程式人生 > >Java 方法傳參

Java 方法傳參

java程式設計語言總是採用值傳遞進行呼叫,無論是基本資料型別還是物件
由以下例項程式碼即可證明:

public static void main(String[] args) {

    Employee a = new Employee("a", 1000, new Date());
    Employee b = new Employee("b", 3000, new Date());

    System.out.println("a: " + a); 
    // a: Employee [name=a, salary=1000.0, hireDay=Wed Sep 06 13:49:43 CST 2017, id=0]
System.out.println("b: " + b); // b: Employee [name=b, salary=3000.0, hireDay=Wed Sep 06 13:49:43 CST 2017, id=0] swap(a, b); System.out.println("a: " + a); // a: Employee [name=a, salary=1000.0, hireDay=Wed Sep 06 13:49:43 CST System.out.println("b: " + b); // b: Employee [name=b, salary=3000.0, hireDay=Wed Sep 06 13:49:43 CST
} public static void swap(Employee a, Employee b) { Employee temp = a; a = b; b = temp; }

由此可以得出java中方法引數使用的情況:
- 一個方法不能修改一個基本資料型別引數的值(值傳遞,只是對該引數的拷貝)
- 一個方法可以改變物件引數(即引用型別引數)的狀態(物件的例項變數的值是可以在方法中改變的)
- 一個方法不能讓物件引數引用一個新的物件(java傳參採用按值傳遞,物件型別引數傳遞時是對其引用的拷貝,而不是物件本身)