2017-08-12 50 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方法

相關問題