java构造方法前加void有什么作用
构造方法前面是没有任何返回符,不能加任何返回类型,包括void.一个构造方法一旦加了void,那么这个就不是构造方法了,变成了一个普通的方法。
至于你程序出现的情况,是这样的。任何一个Java类,如果你不自己定义构造方法,那么都有一个缺省的无参数的构造方法。但是当你定义了自己的构造方法,那么缺省的构造方法就没有了。
当你不加void的时候,表示你定义了一个有两个参数的构造方法,first(int a,int b),而你在实例类的时候,却t=new first(); 但是找不到这个类的无参数构造方法,所以就出错了。
当你加void的时候void first(int a,int b),就变成了你类的一个方法,这时候你没有为类自定义任何一个构造方法,所以系统为你分配一个缺省的无参数构造方法,在实例类的时候,就可以使用t=new first();
要解决这个问题,你可以自己填写一个无参数构造方法
public first(int a,int b){
...
}
public first(){
...
}
也可以,在实例类的时候,不要使用无参数的构造方法,使用t=new first(3,2);
btw:构造方法前面加void就变成了成员方法,这是Java编程考试中经常出现的一个考点。hehe
posted on 2017-04-12 15:45 dongruiha 阅读(3400) 评论(1) 编辑 收藏 举报