2017-08-12 52 views
5
class Test{ 
    public Test(){ 
    System.out.println("I am here"); 
    return;// not getting error 
    } 

    public static void main(String[] args){ 
    Test test = new Test(); 
    } 
} 

我是java初学者。我的导师告诉我,构造函数返回一个对象,并向我展示了上面的例子。是否真的发生,因为方法没有返回任何值,但return;没有收到错误。构造函数是否返回一个对象?

+1

否构造函数不返回对象。 'new'关键字使JVM创建对象,调用其构造函数,然后“返回”该对象。 – CollinD

+1

* [INFO] *'return'关键字只是将流返回给方法签名(基本上在return语句后跳过代码)。尝试在返回后编写一些'print'语句。这个'return'的签名用在'void'方法中**不是用返回类型**的方法:P – emotionlessbananas

+0

得到它,但是构造函数没有返回类型甚至是void和编译器在这里没有得到错误,所以我很困惑。 –

回答

7

不,构造函数初始化一个已经创建的对象。它不返回一个对象。你的导师是错误的。

您不需要在构造函数中写return;,除非您在代码结束之前返回。

2

不。构造函数的作用是初始化对象的状态。

new关键字负责在堆中创建一个对象。在下面的示例中,使用new关键字创建一个对象,然后指定该对象的类型为Test变量名称test

Test test = new Test(); 
3

不,这是不是在所有

真正的Java中的构造函数是类似于创建对象的实例时这就是所谓的方法的代码块。以下是构造函数和方法之间的主要区别:

  • 构造函数没有返回类型。

  • 构造函数的名称必须与该类的名称相同。

  • 与方法不同,构造函数不被视为类的成员。

  • 创建对象 的新实例时会自动调用构造函数。

实施例:

class Bike1{ 
    Bike1(){ 
     System.out.println("Bike is created"); 
    } 

    public static void main(String args[]){ 
     Bike1 b=new Bike1(); 
    } 
} 
1

构造在Java是用于初始化对象的方法的一个特殊类型。

在创建对象时调用Java构造函数。它构造这些值,即为对象提供数据,这就是为什么它被称为构造函数的原因。

但它没有返回类型,恐怕您的导师对此有误,请与他重复探讨。

class Car{ 
Car() 
{ 
System.out.println("Car is created"); 
} 
    public static void main(String args[]) 
{ 
    Car c=new Car(); 
    } 
} 
+0

你好,我了解你是新来的,但请在发布你的答案之前检查格式。 –

2

这行代码

return; 

并不代表返回值,但它刚刚结束承包商的执行,因为它是在最后一行所以它并不一定是你用

情况return在构造

class Test 
{ 

    private int a; 
    public Test(int a) 
    { 
    System.out.println("I am here"); 
    if(a>10) 
    { 
     System.out.println("I'm Executed but not the rest of code"); 
     return; 
    } 
    System.out.println("I'm the last line of constructor"); 
    } 

    ... 

} 

returnconstructor中就像returnvoid方法

相关问题