2011-11-11 202 views
-3

有人對我說這是一個構造函數,我是java的新手,我認爲constrcutor必須使用「new」這個詞。Java構造函數?

你能否給我定義構造函數,我必須看看10多個定義,但每個定義都與另一個相矛盾。

this.token = token; 
    this.lineNumber = lineNumber; 
    this.fileName = fileName; 
    this.rank = rank; 
+15

試圖通過在這裏提出問題來學習Java的基礎知識有些不起作用。我建議選一本好的介紹性書籍,並閱讀前幾章。 –

+0

這不是一個真正的問題。如果有關*的特定定義*之間存在矛盾,則發表一個關於*明顯矛盾的問題,包括來源。 – 2011-11-11 22:22:42

+0

幾乎相同:http://stackoverflow.com/questions/8100432/java-code-explanation –

回答

4

這可能是一個構造函數的主體,當然。

構造函數是一種特殊的方法,其名稱與該類相同。你可以使用「new Classname」來調用它,給出任何參數。它返回一個可以使用的對象。

+4

*咳嗽*不是方法*咳嗽* – 2011-11-11 22:23:41

+0

不,當然不是,但我試圖簡化它。 – Robert

1

構造函數看起來與方法非常相似,但名稱與java類相同,也沒有返回類型。

調用構造函數需要關鍵字que new,但定義構造函數不。

舉例來說,如果你有類Person你可以有這樣的構造:

Person me = new Person();// you'll se the message "This is the constructor" in the console 

public class Person { 
    // this is the constructor 
    public Person() { 
     System.out.println("This is the constructor"); 
    } 
} 

你可以通過使用new關鍵字調用構造函數「構建」一個新的Person

我希望這有助於。

2

構造函數與方法類似。只有它沒有返回類型,並且它具有相同的名稱作爲類名稱:

讓我們假設你的類名是JavaApp:

public class JavaApp 
{ 
    public JavaApp() // constructor 
    { 
    } 

    public JavaApp(object token, int lineNumber, String fileName, int rank) // constructor, with 4 parameters 
    { 
     this.token = token; 
     this.lineNumber = lineNumber; 
     this.fileName = fileName; 
     this.rank = rank; 
    } 

    public object token; 

    public int lineNumber; 

    public String fileName; 

    public int rank; 
} 

現在,所有你需要做的實例類,這是:

JavaApp app = new JavaApp(); // no arguments 

JavaApp app = new JavaApp(null, 0, "", 0); // your specified arguments 
2

構造是創建一個新的istance的特定方法反對

public class Test { 
private int a; 

//Constructor 
    public Test(){ 
    } 

//Constructor 
public Test(int a){ 
this.a = a; 
} 
} 


//Usage example 
Test a = new Test(); 
Test b = new Test(1); 
3

從Java註釋

Java: Constructors當您使用new關鍵字一類的新實例(一個新的對象),該類的構造函數被調用。構造函數用於初始化對象的實例變量(字段)。構造函數與方法類似,但有一些重要的區別。

有許多在線學習基礎知識(甚至一些高級的東西)在任何語言的介紹性教程,只是環顧四周。上面的鏈接,發現搜索「Java的構造函數」

除此之外,你提供的示例代碼將是一個構造函數的但它缺乏一個類定義等語句來構造。new關鍵字在對象初始化之前使用,它會調用正在初始化的對象的構造函數。

1

構造函數基本上是一個爲您的類初始化對象的方法。當您創建一個新對象(來自某個類)時,您可以調用構造函數,該構造函數使用輸入參數中的設置創建對象。在實踐中,構造函數不必實際做任何事情(即,你實際上不必在其中編寫代碼)。這只是設置你的對象的一個​​方便的手段。