方法重载:
方法重载是指多个方法享有相同类型的名字,但是这些方法的参数必须不同,或者参数的个数不同,或者参数类型不同。返回值类型不同不能用来区分重载的方法。
计算二维三维空间的点到原点的距离,使用一个方法名的程序:
[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);
}
}
编译器会根据参数的个数和类型来决定当前所使用的方法。
构造方法:
主要用于初始化新建的对象。构造方法的方法名要求与类名相同,且无返回值。
在创建对象时,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行使用构造方法创建新对象。
在一个类的程序中,也可以没有定义构造方法,则Java系统会认为是定义了一个缺省构造方法,缺省构造方法是无任何内容的空方法。当编写类时,只有在需要进行一些特别初始化的场合,才需要定义构造方法。