❶ java中可變參數int nums[] = {1,2,3,4};為什麼這樣寫是不對的,幫忙解釋下謝謝!
int nums[] = {1,2,3,4};的寫法是對。
首先你要明白「定義」本來就是一個籠統的概念,它可以是1.只聲明;2聲明並分配內存;3聲明,分配內存並初始化。
java中定義數據就那麼幾種方法:
一:只聲明一個數組,聲明一個數組不分配內存,所以[ ]中不需要有數字
type arrayName[];或者type[] arrayName;
二:聲明並分配內存,這時[ ]中必須有數字以顯示數組長度
arrayName=new type[arraySize];或者type arrayName=new type[arraySize];
三:聲明,分配內存並初始化,這時必須為數組顯式初始化(也就是填寫數組元素)
例如:int nums[] = {1,2,3,4};
PS:在(二:聲明並分配內存)中,其實系統會默認初始化,int數組默認數組元素都是0,String數組默認數組元素都是空格,布爾數組默認數組元素都是false等等。
比如:int arrayName[4];其實等同於int arrayName[]={0,0,0,0};
至於int nums[ ] 和int[ ] nums本質是沒什麼區別的,盡量寫成後者樣式比較合理。
這么說應該很好理解吧!o(╯□╰)o
❷ java中參數變數具體是什麼,可以干什麼,有什麼作用,
參數變數就是一個函數要被調用時候,傳進去的那個東西,也叫 形參
留一個可以變化的東西給別人可以根據需要使用,
在JAVA中 參數變數有傳值和傳引用兩種,基本上都是傳引用
❸ java 可變參數是什麼
java 可變參數是1.5版本的新特性,也就是說用戶若是想定義一個方法,但是在此之前並不知道以後要用的時候想傳幾個參數進去,可以在方法的參數列表中寫參數類型或者數組名,然後在方法內部直接用操作數組的方式操作。
java可變長的形參聲明格式:dataType...parameters。
其中,省略號表示數據類型為dataType的parameters參數個數不固定的,可為任意個。此外,在方法調用時,變長形式參數可被替換成1個、2個或多個參數。在編譯時,方法的變長參數將被看成具有相同類型的一維數組。
在java語言開發中,從JDK1.5以後,java允許定義形參長度可變的參數從而允許為方法指定數量不確定的形參。
❹ Java中方法內的可變參數怎麼使用
Java1.5增加了新特性:可變參數:
適用於參數個數不確定,類型確定的情況,java把可變參數當做數組處理。
注意:可變參數必須位於最後一項。當可變參數個數多餘一個時,必將有一個不是最後一項,所以只支持有一個可變參數。因為參數個數不定,所以當其後邊還有相同類型參數時,java無法區分傳入的參數屬於前一個可變參數還是後邊的參數,所以只能讓可變參數位於最後一項。
可變參數的特點:
(1)、只能出現在參數列表的最後;
(2)、...位於變數類型和變數名之間,前後有無空格都可以;
(3)、調用可變參數的方法時,編譯器為該可變參數隱含創建一個數組,在方法體中一數組的形式訪問可變參數。
publicclassVarable{
publicstaticvoidmain(String[]args){
System.out.println(add(2,3));
System.out.println(add(2,3,5));
}
publicstaticintadd(intx,int...args){
intsum=x;
for(inti=0;i<args.length;i++){
sum+=args[i];
}
returnsum;
}
}
❺ ...的Java中可變參數的符號
在編寫一個方法時,其參數隨著程序運行的條件而變化,在編譯期間無法確定。具體地講,例如編寫一個列印參加聚會party的程序,其中方法printInvitation()將根據作為參數的參加人姓名,列印邀請卡。但這個參數的數量事先並不確定。當然可以編寫許多重載的方法來解決這個問題,如:
void printInvitation(String name);
void printInvitation(String name1, Stringname2);
void printInvitation(String name1, Stringname2, String name3);
問題是編寫多少個重載的方法才可以解決給所有參加者列印邀請卡?也許需要改變您的程序設計,而使用數組或者鏈接表了。
應用可變參數可以方便、靈活地解決這類問題。例如:
void printInvitation(String...names) {
for (String name : names) {
makeCard(name); //調用方法按照姓名列印邀請卡
System.out.println(Recording info: invitation card has been printed for + name);
}
}
這里,(String...names)便是可變參數。它包括從0到任意個相同類型的參數。在編譯期間,這個可變參數將被轉換為字元串數組形式,即:void printInvitation(String names).
如下是調用這個方法的例子:
printInvitation(李剛, David Smith);
printInvitation(Greg Wu, Paul Nguyen, Liu Wei, 張新);
printInvitation(); //無參數
當在無參數情況下調用這個方法時,將不執行任何這個方法中的代碼。
如下是運行結果:
Recording info: invitation card has been printed for 李剛
Recording info: invitation card has been printed for David Smith
Recording info: invitation card has been printed for Greg Wu
Recording info: invitation card has been printed for Paul Nguyen
Recording info: invitation card has been printed for Liu Wei
Recording info: invitation card has been printed for 張新