2014-11-15 51 views
0
public class HelloWorldV3 
{ 
//default constructor 
HelloWorldV3() 
{ 
} 

//print two lines of text 
public void printTwoLines() 
{ 
    System.out.println("Hello, Virtual World!"); 
    System.out.println("It is a great day for programming."); 
} 

//main method 
public static void main(String [] args) 
{ 
    HelloWorldV3 hello = new HelloWorldV3(); 
    hello.printTwoLines(); 
} 

嗨,我開始瞭解構造函數,並且我無法理解某些代碼。在上面的程序中,我知道創建了一個構造函數,但它是空的。 printTwoLines()函數打印兩行,main方法使用構造函數調用該函數。我有問題,爲什麼需要成爲「HelloWorldV3 hello = new HelloWorldV3();」行,以及如果實際上在構造函數中有什麼會發生什麼。瞭解構造函數(非常簡單的代碼)

+0

通過閱讀[這](https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html)和所有其他相關首先教程。 –

+0

你瞭解對象和麪向對象編程嗎? – Zach

回答

1

的:

HelloWorldV3 hello=new HelloWorldV3(); 

線使一個名爲hello變量。你好是一種不同於你可能習慣的變量類型,並不存儲一個數字或整數,或類似的東西,但是一個對象(真正的對象的位置,但不要擔心這個現在)。你也可以把它寫成:

HelloWorldV3 hello; 
hello=new HelloWorldV3(); 

就像你這樣寫:

int i; 
i=5; 

然後,您可以訪問任何的招呼變量或變量i。

new HelloWorldV3(); 

執行:

至於你的問題的第二部分,該號碼時在構造函數中的任何將被調用。所以,你可以把一些代碼constuctor裏面是這樣的:

public HelloWorldV3() { 
    System.out.println("In the constuctor"); 
} 
+0

當您調用構造函數時,將執行該代碼。 – WiErD0

0

這只是爲您的HelloWorldV3對象分配新運算符的空間。

在構造函數中定義狀態總是很好。按照狀態我的意思是,如果你有int字段,你可以初始化它來說默認值,這可能是適當的,當你創建你的對象(比如說10)

0

構造函數會初始化你的對象「hello」鍵入「HelloWorldV3」。 如果在構造函數中有代碼,它將在方法的第一行代碼中調用「new HelloWorldV3()」時執行。所以它會在方法「printTwoLines」之前執行。 我希望我很清楚:) 謝謝。

0

您需要的線

HelloWorldV3 hello = new HelloWorldV3(); 

因爲這是創建類HelloWorldV3的一個實例(對象),讓您在調用它的方法和訪問它的字段(如果有的話)。

Java在後臺實現一個對象時會做一些事情,並且存在一個構造函數的概念,允許您在Java創建類的實例時指定要執行的代碼(主要是初始化的東西)。

如果在構造函數中有代碼,該代碼將執行行

HelloWorldV3 hello = new HelloWorldV3(); 

執行時。

要回答你的問題的問題,如果沒有那條線,那麼你會怎麼稱呼printTwoLines()方法?