關於java語言中方法參數傳遞問題

    今天忽然想到關於方法參數傳遞的問題,後通過簡單代碼的驗證,最終肯定是值傳遞.java

    關於方法參數的傳遞形式有兩種:值傳遞,引用傳遞.code

    一.值傳遞
對象

            所謂值傳遞就是說實際參數會複製一份而後傳遞到方法內去使用.當方法內對這個傳遞的值進行修改時,實際參數不受影響class

    二.引用傳遞
test

            所謂引用傳遞就是說不會複製一份實參值,因此當方法內部對這個傳遞的值進行修改是,實際參數會受到影響.引用

    三.關於java中方法參數的傳遞方式方法

            在java中能夠這樣理解方法參數的傳遞,首先對於java的基本類型來講,就是複製一份而後讓方法內部操做.對形參的操做不會影響實參.這顯然是值傳遞.其次對於java中對象來講,是複製這個對象的地址,造成一個新的形參,此時對對象值的改變,確定能夠影響實參,由於他們都指向同一個地址的對象.但並非值傳遞的意義.當咱們讓形參指向一個新的地址,及改變傳遞參數的值(這裏是方法實際參數地址複製的值),原來實際參數指向的地址並無改變.因此明顯能夠認爲java中方法參數的傳遞只有值傳遞.
static

    四.證實代碼co

public class MyTest {
	public static void main(String[] args) {
		Cat cat = new Cat("咪咪");
		
		MyTest test = new MyTest();
		int a = 100;
		test.printCatName(cat,a);
		System.out.println(cat);
		System.out.println(a);
	}
	
	public void printCatName(Cat cat,int a){
		cat = null;
		System.out.println(cat);
		a = 10;
	}
}

輸出結果   參數傳遞

I am a cat named 咪咪
null
com.lubby.test.Cat@43cda81e
100
相關文章
相關標籤/搜索