簡體   English   中英

可變參數與方法重載

[英]Varargs vs method overloading

方法重載用於在不傳遞變量的限制下執行不同類型的任務(即...,根據傳遞的參數,每個具有不同類型的代碼)。 但是 varargs 的必要性是什么,即..,我們可以傳遞多個參數。但是,對於沒有傳遞的變量,我們如何使代碼有所不同,即..多個參數下的多個任務?

varargs 是傳遞數組的簡寫。 例如,而不是寫作

public static void main(String[] args) {
   for(String arg : args)
       System.out.println(arg);

你可以寫

public static void main(String... args) {
   for(String arg : args)
       System.out.println(arg);

主要區別在於調用者現在可以寫

main("hello", "world");

當方法需要不確定數量的參數(對象)時,使用VARARGS 一個典型的例子是 Java 的Formatter

一個例子是這樣的:

String.format("My name is %s", myName);
String.format("My name is %s %s", myFirstName, myLastName);
String.format("My name is %s %s and I am %d years old", myFirstName, myLastName, myAge);

假設您要計算四邊形的體積。 第一個場景是計算矩形的面積,它需要三個參數。 第二種情況是,如果您正在計算只需要一個參數的立方體的面積,而第三種情況可能是不傳遞任何值。 讓我們看一個例子:僅用於說明目的

Class Volume(){

Volume(){
this (-1, -1, -1)
}
Volume(int x){
this (x, x, x)
}
volume(int x, y, z)
length = x;
breadth = y;
height = z;
}
public int getVolume(){
return length*breadth*height
}

這是已知的場景,沒有其他選項是可能的,但如果您不確定參數的數量,我們使用 varags。 在上述情況下,我們沒有使用 varags,因為它們效率較低,消耗更多空間,而且更危險,因為它允許用戶傳遞任意數量的參數,而在上面的示例中並非如此

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM