2 回答

TA貢獻1799條經驗 獲得超6個贊
除了 Dmitry 指出的錯誤外,您main還有以下錯誤:
?public static void main(String args[]){
? ?//Create lions and assign attributes
? ?Lion lion1 = new Lion();
? ?lion1.numTeeth = 12;
? ?lion1.spots = 1;
? ?lion1. weight = 86;
? ?lion1.age = 7;
? ?lion1.cubs = 3;
numTeeth spots weight并且所有其他字段都設置為私有。您的Lion班級無法直接訪問這些字段。你應該使用你的 getters 和 setters 你從Animal
同樣在打印屬性時Lion:
?//Print attributes
? ? System.out.println("Lion1 attributes:");
? ? System.out.println("Number of teeth : " + numTeeth);
? ? System.out.println("Number of spots : " + spots);
? ? System.out.println("Weight of lion : " + weight + " kgs");
? ? System.out.println("Age : " + age);
? ? System.out.println("No of cubs : " + cubs);
? ? System.out.println(" ");
您的字段是對象的屬性。嘗試直接打印字段會給你一個編譯器錯誤,因為這些是你的Lion1對象的屬性。您需要像這樣使用點運算符:
System.out.println("Number of Teeth" + Lion1.getNumTeeth());

TA貢獻1806條經驗 獲得超5個贊
是的,你的代碼中有很多問題會在編譯階段得到。也許您錯誤地指定了示例。因此,請提供您的問題的詳細信息。
我會指出一些顯而易見的:
你聲明了局部變量
年齡 = 0; 國際幼崽= 0;
在實際上不使用Lion
新屬性擴展類的構造函數中。將這些屬性作為字段添加到類中Animal
:
private int age = 0; private int cubs = 0;
然后在類的構造函數中初始化它們Lion
(如果需要)。
在方法中
public static void main(String args[])
,您試圖使用 它沒有的Lion
類字段。age, cubs
見第 1 點。該類有
public Integer getWeight()
2Liontype
個錯誤。首先,變量weight
未定義,其次缺少返回語句,盡管該方法必須返回一個Integer
值。
添加回答
舉報