java中的构造方法可以有很多,可以带参数也可以不带参数,但是也可以显式指定构造方法,
那么普通的方法可不可以和构造方法同名呢?
答案是可以,比如以下的代码。MethodName 的构造方法就和一个普通类方法同名而且参数列表相同。但是编译器不会建议我们这么做。它会给我们一个警告。
package hello;
class MethodName{
private int i;
public MethodName() {
System.out.println("我是真正的构造方法");
}
public MethodName(int i) {
this.i=i;
System.out.println("我也是是真正的构造方法,我带参数");
}
public void MethodName() {
System.out.println("我和构造方法的名称相同,但是我不是构造方法");
}
}
public class TestJava {
public static void main(String[] args) {
MethodName methodName=new MethodName();
MethodName methodName1=new MethodName(1);
methodName.MethodName();
}
}
输出的结果:
我是真正的构造方法
我也是是真正的构造方法,我带参数
我和构造方法的名称相同,但是我不是构造方法