什么是可變引數串列?
public void str(String ... var1) {
}
一.可變引數串列指的是引數的數量不固定,但是引數的型別是固定的,引數串列規定了是哪一種型別,隨后的引數就只能是哪一種型別,
public class Demo {
//求和
public void sum(int...n) {
int sum = 0;
for(int i:n) {//其實我們可以將可變引數串列看作為一個陣列
sum = sum + i;
}
System.out.println("sum="+sum);
}
public static void main(String[] args) {
Demo de = new Demo();
de.sum(1);
de.sum(1,2);
de.sum(1,2,3);
//de.sum(1,1.2);傳入的必須是int型別
}
}
二.引數串列中如果有兩個或兩個以上的引數,可變引數一定是在最后的,
public class ArgsDemo1 {
//查找
public void search(int n,int...a){//引數串列中如果有兩個或兩個以上的引數,可變引數一定是在最后的,
boolean flag=false;
for(int a1:a){
if(a1==n){
flag=true;
break;
}
}
if(flag){
System.out.println("找到了"+n);
} else{
System.out.println("沒找到"+n);
}
}
/*public void search(int n, int[] a) {
//可變引數方法換成陣列是不算多載的,算重復定義
}*/
/*public void search(int n, int... a, int...b) {
//一個方法中只能有一個可變引數,
}*/
public static void main(String[] args) {
ArgsDemo1 ad1=new ArgsDemo1();
ad1.search(3,1,2,3,4,5);
int[] a={1,2,3,4,5};
ad1.search(3,a);//可變引數串列可以和陣列進行兼容,可以將陣列傳遞給可變引數串列
}
}
總結:
1.可變引數串列指的是引數數量是不確定的,可以隨時變化,有時候也稱可變原引數,
2.引數串列中如果有兩個或兩個以上的引數,可變引數一定是在最后的,例如:public void a(int a,int… b){ }是正確的,但是如果把int… b寫前面則是錯誤的,
3.可以將陣列傳遞給可變引數,
4.一個方法中只能有一個可變引數,
5.可變引數方法換成陣列是不算多載的,算重復定義,
6.若有多個多載方法,則可變引數串列所在的方法是最后被訪問的(如果主方法所傳引數其他多載方法可以滿足,則呼叫其他方法,只有其他方法都不滿足,才會呼叫可變引數串列所在的方法)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/246820.html
標籤:java
上一篇:BindingResult的使用
下一篇:Java程式設計題
