Java6 面向對象編程2————方法的可變參數、方法的參數傳遞

書接上回:介紹完方法、對象的基本概念後來具體看一看方法和對象之間的值傳遞問題。

方法的可變參數

①採用數組形參來定義方法

public static void test(int a ,String[] books);
ps:如果沒有參數要定義一個空數組或者是null

public class Personn //數組法
{
	public void printInfo(String[] args)//定義一個方法,形參是一個字符串數組
	{
		for(int i=0;i<args.length;i++)
			System.out.println(args[i]);//將輸入的數組一一打印出來。
	}
}
public class text3 //檢驗
{
	public static void main(String[] args) 
	{
		Personn nn=new Personn();//聲明一個Personn的對象
		String[] ss=new String[]{"caizi","7952","火星","159263"};//建立一個String類型的數組
		nn.printInfo(ss);//引用nn對象的方法,實參參就是字符串數組ss。沒有參數要填null
	}
}
結果:
caizi
7952
火星
159263

②以可變個數形參來定義方法

==public static void test(int a ,String…books);==不可變的放前面,可變的放最後。
引用時不需要創建數組,會有一定不同
ps:如果沒有參數可以不填

public class Personn //...法
{

	public void printInfo1(String... args)//使用Java特有的... 方式達成可變參數的輸出,內部還是用迭代的辦法。
	{
		for(int i=0;i<args.length;i++)
			System.out.println(args[i]);//將輸入的數組一一打印出來。
	}
}
public class text3 //檢驗
{
	public static void main(String[] args) 
	{
		Personn nn=new Personn();//聲明一個Personn的對象
		String[] ss=new String[]{"caizi","7952","火星","159263"};//建立一個String類型的數組
		nn.printInfo1("八戒","八戒","你真可愛");//需要特別注意的用法
		nn.printInfo1(ss);//普通傳遞數組
	}
}
結果:
八戒
八戒
你真可愛
caizi
7952
火星
159263
  • 總結:
    1.可變參數:方法參數部分指定類型的參數個數是可變多個
    2.聲明方式:方法名(參數的類型名…參數名)
    或者方法名(參數類型名[ ] 參數名)
    3.可變參數方法的使用與方法參數部分使用數組是一致的
    4.方法的參數部分有可變形參,需要放在形參聲明的最後

方法的參數傳遞

方法,必須有其所在類或對象調用纔有意義
若方法含有參數:

  • 形參:方法聲明時的參數
  • 實參:方法調用時實際傳給形參的參數值

Java虛擬機的存儲原理

Java的實參值如何傳入方法呢?
Java裏方法的參數傳遞方式只有一種:值傳遞。
即將實際參數值的副本(複製品)傳入方法內,而參數本身不受影響。
在這裏插入圖片描述

  • 基本數據類型在參數的傳遞過程中,就是將實參的值賦給形參。
    在這裏插入圖片描述
  • 對象在參數傳遞中傳遞的是地址(就是將heap中的值傳遞了),改變了對象的“值”就是將heap中的值給改了,沒有賦值給形參。(這個跟C語言的指針有點類似)
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章