變量在方法中的傳遞

<span style="font-size:14px;">public class Test {
	public static void main(String[] args) {
		//對基本類型的調用
		int num = 5;
		System.out.println("基本類型值傳入方法前是:" + num);
		primitiveDeliver(num);
		System.out.println("基本類型值傳入方法後是:" + num);
		
		System.out.println("----------------------");
		
		//對引用類型的調用。
		Demo demo = new Demo("張三");
		System.out.println("引用類型傳入方法前的值:" + demo);
		referenceDeliver(demo);
		System.out.println("引用類型傳入方法後的值:" + demo);
	}
	
	public static void primitiveDeliver(int n){
		n += 2;
		System.out.println("變量在方法內處理後的值是:" + n);
	}
	
	public static void referenceDeliver(Demo demo){
		demo = new Demo("李四");
		System.out.println(demo);
	}
}

class Demo{
	//表示該對象的成員變量
	private String name;
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	//傳遞給該對象當前對象的名字
	public Demo(String name){
		this.name = name;
	}
	
	//重寫toString方法方便顯式顯式該對象的名字。
	public String toString(){
		return name;
	}
}</span>


總結:

             1.對於基本類型的變量,傳遞給方法,方法內部改變了變量的值。但是在方法外部顯示的仍然是變量原來的值而不是方法處理過的值。所以基本類型傳遞的是變量的複製。即值傳遞。

             2.對於引用類型的變量。他傳遞給方法的是該對象的索引,方法內部改變該引用指向的對象並不會改變該原來的對象。所以對於引用類型的變量傳遞的是該引用的複製。而不是傳遞引用的引用。所以對於引用傳遞的仍然是引用的值傳遞。

發佈了19 篇原創文章 · 獲贊 8 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章