Java中,构造函数没有返回值。请问没有返回值和返回值类型为void,有什么区别?

我知道没有返回值和返回值类型为void,是不一样的。但是,到底哪里不一样呢?希望大侠们能举例说明。希望不要以“这是规定”来回答该问题。我知道这是个“规定”。但是,Java... 我知道没有返回值和返回值类型为void,是不一样的。但是,到底哪里不一样呢?希望大侠们能举例说明。
希望不要以“这是规定”来回答该问题。我知道这是个“规定”。但是,Java的设计者为什么要做这样的规定呢?为什么让构造函数没有返回值,而不让构造函数的返回值为void呢?如果说为了不给编译器带来额外的麻烦,统一让所有的构造函数的返回值均为void也不会很麻烦啊。希望有大侠不仅能“知其然”,更能“知其所以然”
展开
 我来答
zeus3288
推荐于2017-09-19 · TA获得超过1312个赞
知道小有建树答主
回答量:525
采纳率:0%
帮助的人:801万
展开全部
这就是规定,如果你现在自己做一个新语言的编译器,也可以规定构造函数必须加上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(); //方法必须显示调用
}

}
cfwzw312
2010-01-31 · TA获得超过655个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:192万
展开全部
Java中创建对象的方法就是使new 关键字调用构造函数来创建对象(另一个创建对象的方法是clone()函数,他的返回值为Object),所以可以理解为构造函数的返回值是一个对象。
返回值类型为void才是真正的无返回值函数。

构造函数是使用new关键字来调用的。
其它函数是用对象名或类名加.的方式来调用的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者fjslf1697
2010-01-31 · 超过13用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:45.4万
展开全部
构造函数作用是在类初始化的同时初始化一些变量或参数,不需要返回值;
而void指的是方法,当一个方法只是完成某种功能计算时并不需要返回值。

比如说
class A{

int a;
int b;
//构造函数
public A(int a,int b){
this.a = a;
this.b = b;
}
//void 方法,只是完成计算
void plus(){
System.out.println(a+b);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
k9ruby
2010-01-31 · 超过10用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:0
展开全部
这就是规定,没啥解释的
A a = new A();
会去寻找他的无参构造器,他不是一个方法不需要void;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jacintosh
2012-07-02
知道答主
回答量:3
采纳率:0%
帮助的人:4912
展开全部
规定就是规定。这是别人设计 Java 的编程哲学,不符合你的预期不代表它不合理!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式