2013-03-05 82 views
1

假設你被賦予以下PetDriver類,其中包括一個主要方法:完成一個類定義

public class PetDriver{ 
    public static void main(String[] args){ 
    int weight = 40; 
    Pet doggie = new Pet("Rover", weight); 
    System.out.println("my pet's name is " + doggie.getName()); 
    System.out.println("my pet's weight is " + doggie.getWeight()); 
    } 
} 

執行主要產生以下的輸出:

我的寵物的名字是羅孚
我的寵物重量是40

我的代碼如下,但它返回null。

public class pet { 

    public String name; 
    public int weight = 40; 

    public Pet (String y, int x){ 
     y = name; 
     x = weight; 
    } 

    public String getName(){ 
     return name; 
    } 

    public int getWeight(){ 
     return weight; 
    } 
} 

謝謝!

回答

2

在你的構造函數,你應該做它周圍的其他方法:

public Pet (String y, int x){ 
    name = y; // instead of y = name 
    weight = x; // instead of x = weight 
} 

你所做的只是分配什麼成員值的構造函數的參數,而不是周圍的其他方法。因此,成員值name本身從未寫入,因此它是null

+0

哇,我怎麼沒看出來。我感到非常愚蠢,謝謝! – user2086204 2013-03-05 01:59:14

2

您的構造函數不會將值分配給屬性。將它們更改爲以下內容。

public Pet (String y, int x){ 
    name = y; 
    weight = x; 
}