溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中形參和實參的區(qū)別是什么

發(fā)布時間:2022-02-28 10:38:25 來源:億速云 閱讀:170 作者:iii 欄目:開發(fā)技術

這篇“Java中形參和實參的區(qū)別是什么”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java中形參和實參的區(qū)別是什么”文章吧。

目錄

    關于變量的賦值:

    如果變量是基本數(shù)據(jù)類型,此時賦值的是變量所保存的數(shù)據(jù)值。
    如果變量是引用數(shù)據(jù)類型,此時賦值的是變量所保存的數(shù)據(jù)的地址值。

    public class ValueTransferTest {
    	
    	public static void main(String[] args) {
    		
    		System.out.println("***********基本數(shù)據(jù)類型:****************");
    		int m = 10;
    		int n = m;
    		
    		System.out.println("m = " + m + ", n = " + n);
    		
    		n = 20;
    		
    		System.out.println("m = " + m + ", n = " + n);
    		
    		System.out.println("***********引用數(shù)據(jù)類型:****************");
    		
    		Order o1 = new Order();
    		o1.orderId = 1001;
    		
    		Order o2 = o1;//賦值以后,o1和o2的地址值相同,都指向了堆空間中同一個對象實體。
    		
    		System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " +o2.orderId);
    		
    		o2.orderId = 1002;
    		
    		System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " +o2.orderId);
    		
    	}
    	
    }
    
    class Order{
    	
    	int orderId;
    	
    }

    方法的形參的傳遞機制:值傳遞

    1.形參:方法定義時,聲明的小括號內(nèi)的參數(shù)

    實參:方法調(diào)用時,實際傳遞給形參的數(shù)據(jù)

    2.值傳遞機制:

    如果參數(shù)是基本數(shù)據(jù)類型,此時實參賦給形參的是實參真實存儲的數(shù)據(jù)值。
    如果參數(shù)是引用數(shù)據(jù)類型,此時實參賦給形參的是實參存儲數(shù)據(jù)的地址值。

    public class ValueTransferTest1 {
    	public static void main(String[] args) {
    		
    		int m = 10;
    		int n = 20;
    		
    		System.out.println("m = " + m + ", n = " + n);
    		//交換兩個變量的值的操作
    //		int temp = m ;
    //		m = n;
    //		n = temp;
    		
    		ValueTransferTest1 test = new ValueTransferTest1();
    		test.swap(m, n);
    		
    		System.out.println("m = " + m + ", n = " + n);
    		
    		
    	}
    	
    	
    	public void swap(int m,int n){
    		int temp = m ;
    		m = n;
    		n = temp;
    	}
    }
    public class ValueTransferTest2 {
    	
    	public static void main(String[] args) {
    		
    		Data data = new Data();
    		
    		data.m = 10;
    		data.n = 20;
    		
    		System.out.println("m = " + data.m + ", n = " + data.n);
    		
    		//交換m和n的值
    //		int temp = data.m;
    //		data.m = data.n;
    //		data.n = temp;
    		
    		ValueTransferTest2 test = new ValueTransferTest2();
    		test.swap(data);
    		
    		
    		System.out.println("m = " + data.m + ", n = " + data.n);
    		
    	}
    	
    	public void swap(Data data){
    		int temp = data.m;
    		data.m = data.n;
    		data.n = temp;
    	}
    	
    }
    
    class Data{
    	
    	int m;
    	int n;
    
    }

    以上就是關于“Java中形參和實參的區(qū)別是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關的知識內(nèi)容,請關注億速云行業(yè)資訊頻道。

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI