如题所述
这就是规定,如果你现在自己做一个新语言的编译器,也可以规定构造函数必须加上void,或者一个特殊的返回值。
那么为什么构造函数没有返回值呢,主要是为了区分构造函数和其它方法。其实,你可以尝试在你的构造函数前加上void,你会发现编译可以通过,但是编译器把它认为是方法,而不是构造函数,当然也无法在new的时候自动调用。
下面有一个例子,你可以测试看看:
public class MyPrint {
public void MyPrint(){ //这是一个方法,如果去掉void就是构造函数
System.out.println("method");
}
public test(){ //提示错误,方法声明错误,必须加上返回值
}
public static void main(String[] args){
MyPrint mp=new MyPrint(); //构造函数自动调用
mp.MyPrint(); //方法必须显示调用
}
}
那么为什么构造函数没有返回值呢,主要是为了区分构造函数和其它方法。其实,你可以尝试在你的构造函数前加上void,你会发现编译可以通过,但是编译器把它认为是方法,而不是构造函数,当然也无法在new的时候自动调用。
下面有一个例子,你可以测试看看:
public class MyPrint {
public void MyPrint(){ //这是一个方法,如果去掉void就是构造函数
System.out.println("method");
}
public test(){ //提示错误,方法声明错误,必须加上返回值
}
public static void main(String[] args){
MyPrint mp=new MyPrint(); //构造函数自动调用
mp.MyPrint(); //方法必须显示调用
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2016-12-05
构造函数的作用是初始化数据,没有且必须没有返回值