Java 方法傳參
阿新 • • 發佈:2019-01-04
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傳參採用按值傳遞,物件型別引數傳遞時是對其引用的拷貝,而不是物件本身)