构造函数在Java中没有返回类型

时间:2014-08-12 01:47:02

标签: java

Java中的IF构造函数不返回任何值 - 它们没有任何返回类型,然后创建对象时

ClassOne objectOne=new ClassOne();

如何返回引用ClassOne对象的引用。它是返回引用的JVM。

2 个答案:

答案 0 :(得分:2)

构造函数执行具有返回类型。返回类型是隐式声明构造函数的类的类型。

或者你可以说构造函数有一个显式的返回类型而没有名字。或者,你可以说构造函数名称和返回类型名称都是相同的......虽然这是不严格正确。 (如果你真的很反常,你实际上可以声明一个名称与类名相同的常规方法,并带有显式的返回类型。但是不要在你希望其他人阅读的任何代码中尝试这个。他们会扔石头在你....)

当然,该类型未明确声明。但它不需要。 (如果它被宣布,人们会抱怨甚至更多关于Java冗长。)


类似地,构造函数中的return语句不能有表达式。这是因为构造函数隐式地返回对正在构造的对象的引用;即this

答案 1 :(得分:0)

当我们说施工人员没有“返回类型”时。这意味着开发人员不需要在构造函数名称前放置显式/直接返回类型甚至关键字void。

构造函数将与' new'一起使用。关键字,因为构造函数的目的是初始化类的成员,并将新创建的/实例化的对象放入已分配的内存空间中的' new'关键词。最后,构造函数应该将内存地址(位置)返回到左侧。为了更好地解释这一点,请考虑以下示例。

Circle c;
c = new Circle();
  1. 左侧Circle c创建一个指针(对象名称或ref类型c)来保存类型(来自类)Circle的实例的内存地址。只有存在/或者子类的存储器地址才允许存储在c中。

  2. new keyword为要创建的对象创建内存位置

  3. Circle()构造函数将创建对象,将对象放置到已分配的内存中,然后将内存地址分配给引用' c'。
  4. 如果构造函数不返回值,则此赋值语句将毫无意义。在这种情况下,我们的构造函数返回Circle实例的内存地址。

    总之,当我们说构造函数没有返回值时,这意味着开发人员不需要在构造函数名称前面放置返回类型,就像其他方法一样。

    希望这有帮助, 感谢