2011-11-11 46 views
0

每當我在主Java類上創建一個新的Dog對象時,我無法用我想要的字符串替換「null」(表示Dog類中的String Name變量)。這裏是類:這個Java類有什麼問題?

private String Name; 
private int Age; 

public Dog(String Name, int Age) //Constructor { 
    this.Name =(String) Name; 
    this.Age = Age; 
} 

public int getAge() { 
    return Age; 
} 

public void setAge(int Age) { 
    this.Age = Age; 
} 

public String getName() { 
    return Name; 
} 

public void setName(String Name) { 
    this.Name = Name; 
} 
+0

什麼是你的錯誤消息,並宣佈「狗」類中這些方法實例狗?我假設他們是,但你沒有包括實際的類定義。 – jefflunt

+1

你能告訴你如何使用這個類嗎? –

+0

你是怎麼說你無法替換null的,你可以發表一個你如何做的例子。此外這種轉換是不必要的this.Name =(String)Name; – r0ast3d

回答

1

嘗試Dog dog1 = new Dog("James", 2);代替。字符串文字必須用雙引號括起來,否則,它將被視爲一個變量。

,或者添加

字符串詹姆斯= 「狗的名字」;

之前Dog dog1 = new Dog(James, 2);

6

你讓你的構造你的左括號爲註釋:

public Dog(String Name, int Age) //Constructor { <-- Brace is part of comment 

解決方案:

public Dog(String Name, int Age) /*Constructor*/ { 
+0

即使評論設置正確,Dog對象仍然不允許我替換「null」 –

+0

發佈您的堆棧跟蹤(編輯您的問題) – Sibbo

2

好,你有變量以大寫開頭的,你已經在構造函數定義中註釋掉了一個括號,你做了不必要的String轉換...

Possi BLE固定選項 - >創建類是這樣的:

public class Dog { 

private String name; 
private int age; 

} 

然後,從你的IDE中,進入代碼生成選項 - >選擇生成兩個字段的getter和setter。使用參數選擇構造函數生成。完成。