JAVA构造方法前加VOID有什么作用?

我下面这个程序加了个VOID就正确,不确VOID又不正确?
还有构造方法本身就没有返回值的啊.
class first

{
int x,y;
void first(int a,int b){
x=a;
y=b;
}

void output(){
System.out.println(x);
System.out.println(y);
}
public static void main(String[] args)
{

first t;
t=new first();
t.output();

}
}

构造方法前面是没有任何返回符,不能加任何返回类型,包括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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-04-08
void关键字指的是方法不返回任何值,不论是构造方法还是一般的方法,其作用都是一样的。
第2个回答  2007-04-08
首先纠正一下你的编码规范问题~ 一般来说JAVA程序员要习惯将类名的首字母大写的问题 还有就是如果用VOID来注释构造方法的话该构造 就不属于规范构造器了

你给的代码我调试过了 你并没有创建新的构造方法~
把VOID去掉 在下面 创建对象的时候 你传入参数了么? 再看你的构造方法

想 你应该明白了吧
第3个回答  2007-04-08
额。。不记得了
很9没写程序了
好象是没有返回值
第4个回答  2007-04-08
同意zeus3288的……
相似回答