java傳遞函數參數(值傳遞)

Java中只有按值傳遞,沒有按引用傳遞。java

基本類型傳遞的是值的副本;函數

引用類型傳遞的是引用的副本。rest

基本類型就不說了,主要看看對象作參數的狀況。code

public class Main {

	public static void main(String[] args) {
		Record record = new Record();
		record.name = "interesting";
		f(record);
		System.out.println(record.name);
	}

	public static void f(Record x) {
		x.name = "我變了";
	}

}

輸出:我變了對象

由於傳遞的是引用的副本,也就是說在函數裏面把引用指向的真實對象變了,函數外面的引用仍是指向原先的對象。class

public class Main {

	public static void main(String[] args) {
		Record record = new Record();
		record.name = "interesting";
		f(record);
		System.out.println(record.name);
	}

	public static void f(Record x) {
		x = new Record(); //改變這個引用指向的對象
		x.name = "我變了";
	}
}

輸出:interesting引用

看結果就很好理解了。static

相關文章
相關標籤/搜索