2011-07-26 39 views
1
public class Animal { 

    public static void main(String[] args){ 

    } 

    private int levelOfBreathing = 21; 
    public Animal(Integer levelOfBreathing) { 

回答

3

不,傳遞給構造函數的值未被分配給該字段。的levelOfBreathing值將保持21

編輯:

編輯動物的構造看起來像這樣。

public Animal(Integer levelOfBreathing) { 
    this.levelOfBreathing = levelOfBreathing; 
} 
+0

我怎樣才能解決這個問題? – Doug

1

不,我不這麼認爲。我想你將需要顯式設置,如,

public Animal(int levelOfBreathing) { 
    // constructor for the Animal class 
    this.levelOfBreathing = levelOfBreathing; 
    } 
+1

'self'在Java中無效,我認爲你的意思是'this'。 –

+0

當然你是對的。接得好。 – Patrick87

+0

自己從哪裏來? – Doug

1

我想你可能想這對你的父類:

public class Animal { 

    private int levelOfBreathing = 21; 

    public Animal(Integer levelOfBreathing) { 
     this.levelOfBreathing = levelOfBreathing; 
    } 
} 

它看起來像你這樣的構造中寫道RuntimeException,而不是Animal因爲某些原因。

請注意,this.levelOfBreathing用於指定字段而不是構造函數參數,因爲它們具有相同的名稱。

1

不,它不是。通過在構造函數中指定levelOfBreathing作爲參數,您承認levelOfBreathing的值將來自其他人。

將其更改爲這樣的事情,這將改變levelOfBreathing,無論你傳入構造

public Animal(int levelOfBreathing) 
    { 
    //the this keyword refers to an instance of Animal 
    this.levelOfBreathing = levelOfBreathing; 
    } 
+0

我是否將levelOfBreathing正確設置爲默認值21?它必須是一個私人int。 – Doug

+0

那麼你設置它是爲了將它初始化爲21,但是如果你在構造動物對象時傳入另一個'levelOfBreathing'的值,那麼這個值將被覆蓋 –

相關問題