方法重載:
方法重載是指多個方法享有相同類型的名字,但是這些方法的參數必須不同越妈,或者參數的個數不同泪勒,或者參數類型不同。返回值類型不同不能用來區(qū)分重載的方法棕兼。
計算二維三維空間的點到原點的距離陡舅,使用一個方法名的程序:
[java]view plaincopyprint?
importjava.util.*;
publicclassMain
{
publicstaticvoidmain(String[]?args)
{
Scanner?input=newScanner(System.in);
doublex,y,z;
x=input.nextDouble();
y=input.nextDouble();
System.out.println(dis(x,y));
x=input.nextDouble();
y=input.nextDouble();
z=input.nextDouble();
System.out.println(dis(x,y,z));
}
staticdoubledis(doublex,doubley,doublez)
{
returnMath.sqrt(x*x+y*y+z*z);
}
staticdoubledis(doublex,doubley)
{
returnMath.sqrt(x*x+y*y);
}
}
編譯器會根據參數的個數和類型來決定當前所使用的方法。
構造方法:
主要用于初始化新建的對象伴挚。構造方法的方法名要求與類名相同靶衍,且無返回值。
在創(chuàng)建對象時茎芋,Java系統會自動調用構造方法為新對象初始化颅眶。另外,構造方法只能通過new運算符調用败徊,用戶不能直接調用帚呼。
應用舉例:
[java]view plaincopyprint?
importjava.util.*;
classBox
{
doublex,y,z;
Box(){x=y=z=10;}
doublevolume(){returnx*y*z;}
}
publicclassMain
{
publicstaticvoidmain(String[]?args)
{
Box?b=newBox();
System.out.println(b.volume());
}
}
第6行定義了構造方法,第13行使用構造方法創(chuàng)建新對象皱蹦。
在一個類的程序中煤杀,也可以沒有定義構造方法,則Java系統會認為是定義了一個缺省構造方法沪哺,缺省構造方法是無任何內容的空方法沈自。當編寫類時,只有在需要進行一些特別初始化的場合辜妓,才需要定義構造方法枯途。