黑马程序员技术交流社区

标题: 关于构造方法的疑惑 [打印本页]

作者: 余志强    时间: 2011-10-2 10:53
标题: 关于构造方法的疑惑
构造器不是没有返回值吗?为什么不能用viod修饰呢?如果她有返回值为什么又没有return呢?这是怎么回事?
作者: 匿名    时间: 2011-10-2 12:01
The constructor is an unusual type of method because it has no return value. This is distinctly different from a void return value, in which the method returns nothing but you still have the option to make it return something else. Constructors return nothing and you don’t have an option.

---------《Think in java》

大概意思是:
void方法虽然不返回任何东西,但这是你决定的,void方法不是生来就是这样,只要改变它的返回类型,你就可以让它返回别的什么,int,String,等等。但对于构造方法,你当然没有这样的选择了。所以说,这是一个本质区别。
作者: 匿名    时间: 2011-10-2 12:22
1. 构造方法负责对象的初始化工作,为实例变量赋予合适的初始值。
  2.构造方法必须满足以下语法规则:
       方法名必须与类名相同;
       不要声明返回类型。
    如果有一个方法,尽管方法名和类名相同,但是如果有void、int 等返回类型都不是构造方法:
    注意:当类中没有定义构造方法时将使用默认构造方法。
作者: 匿名    时间: 2011-10-2 13:20
构造函数是个特殊的函数,它没有返回值.这与返回值为void的函数显然不同,后者虽然也不返回任何值,但还可以让它做点别的事情,而构造函数则不允许.在程序中创建和消除一个对象的行为非常特殊,就像出生和死亡,而且总是由编译器来调用这些函数以确保它们被执行.如果它们有返回值,要么编译器必须知道如何处理返回值,要么就只能由客户程序员自己来显式的调用构造函数,这样一来,安全性就被人破坏了

构造函数的调用之所以不设返回值,是因为构造函数的特殊性决定的。从基本语义角度来讲,构造函数返回的应当是所构造的对象。
作者: 匿名    时间: 2011-10-2 15:33
构造函数的规定格式就是:   访问修饰符  类名称(){构造函数体};这就表示不需要返回值。void表示的是有返回值,不过这个返回值是空。
作者: 匿名    时间: 2011-10-2 17:47
首先构造函数是没有返回值的,void也表示是有返回值的 只不过返回值为空而已,所以,不能有void
作者: 匿名    时间: 2011-10-4 15:39
对比下代码中的主函数 和 构造函数你 就知道了。 构造函数是不允许有返回值的,而void是返回值为空的意思。而且void这个英语单词的意思就是“无类型”。构造函数是用于对象的初始化的,也就是当对象建立时,该方法立刻会被调用。至于返回值则是由于他的特殊性所决定,楼主不必要纠结这个东西。
作者: 匿名    时间: 2011-10-5 11:40
构造方法负责对象的初始化工作,为实例变量赋予合适的初始值。
如果有返回直或有void就不是构造方法了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2