java中,方法重载和构造器重载一样吗?

如题所述

在使用new创建对象时,Java会根据提供的参数来决定构建哪一个构造器。比如在构建neZha时,我们提供了两个参数: 整数150和字符串"shit",这对应第二个构建方法的参数列表,所以Java会调用第二个构建方法。
在Java中,Java会同时根据方法名和参数列表来决定所要调用的方法,这叫做方法重载(method overloading)。构建方法可以进行重载,普通方法也可以重载,比如下面的breath()方法:

public class Test
{
public static void main(String[] args)
{
Human aPerson = new Human();
aPerson.breath(10);
}

}

class Human
{
/**
* breath() 1
*/
void breath()
{
System.out.println("hu...hu...");
}

/**
* breath() 2
*/
void breath(int rep)
{
int i;
for(i = 0; i < rep; i++) {
System.out.println("lu...lu...");
}
}

int height;
}

运行结果:
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...

可以看到,由于在调用的时候提供了一个参数: 整数10,所以调用的是参数列表与之相符的第二个breath()方法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-11
方法重载就是同一个类中有2个或者2个以上的方法名相同,参数不通的方法,和返回类型没有关系。而构造器就是必须和类名相同,参数可有可无的,构造器没有返回值,但是实际构造方法不就是构造一个实体本身吗。
第2个回答  2012-07-11
构造函数可以说就是一个构造器.是用来初始对象用的.
你上面说的show(x,y)和show()如果返回值一样就可以说是一个方法重载.
举个例子来说下重载吧.
比如说你要将一个字符串和一个整形的数据加起来形成一个字符串.(假设+号默认只能连接两个字符串).这时你就要对+号声明方法:public String +(String s ,int i){}.又如果你想把两个整形的数据连接起来.
就要进行方法重载:public String +(inti ,int j){}.
方法一:
--------
public String +(String s ,int i){
return s+i.toString() ;
}
重载方法:
---------
public String +(inti ,int j){
return i.toString()+j.toString() ;
}
//其中toString()是将整形转化为字符串的方法;
//+号是方法名;
-------------
public String +(String s1,String s2);就叫做方法的声明.而{}内的就是方法体;
方法和函数只是一个名字的区别.叫法不一样而已.
第3个回答  2012-07-11
构造只是没有返回,别的一样追问

它们的方法名和类名都一样吗

第4个回答  2012-07-11
构造器名必须和类名一样,方法重载就没这个要求了本回答被提问者采纳
相似回答