亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

OOP繼承作業(動物到獅子超類繼承)

OOP繼承作業(動物到獅子超類繼承)

不負相思意 2023-04-26 16:30:16
我需要:使用 Lion 類擴展動物類并具有不同的功能(完成)。添加一個名為 Liontype 類的字段,并添加一個根據重量對獅子類型進行分類的方法。(需要從超類派生)并打印出來。我的代碼中有錯誤,我一直在嘗試修復它。提前感謝您的幫助。public class Animal {  private int numTeeth = 0;  private boolean spots = false;  private int weight = 0;  public Animal(int numTeeth, boolean spots, int weight){    this.setNumTeeth(numTeeth);    this.setSpots(spots);    this.setWeight(weight);  }  public int getNumTeeth(){    return numTeeth;  }  public void setNumTeeth(int numTeeth) {    this.numTeeth = numTeeth;  }  public boolean getSpots() {    return spots;  }  public void setSpots(boolean spots) {    this.spots = spots;  }  public int getWeight() {    return weight;  }  public void setWeight(int weight) {    this.weight = weight;  }}//Extend animal class public class Lion extends Animal{  public Lion (int numTeeth, boolean spots, int weight){  super(numTeeth, spots, weight);  //Add new attributes    int age = 0;    int cubs = 0;  } 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;    //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(" ");   Lion lion2 = new Lion();   lion2.numTeeth = 16;   lion2.spots = 0;   lion2. weight = 123;   lion2.age = 13;   lion2.cubs = 5;    System.out.println("Lion2 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(" ");}
查看完整描述

2 回答

?
哈士奇WWW

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());


查看完整回答
反對 回復 2023-04-26
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

是的,你的代碼中有很多問題會在編譯階段得到。也許您錯誤地指定了示例。因此,請提供您的問題的詳細信息。

我會指出一些顯而易見的:

  1. 你聲明了局部變量

    年齡 = 0; 國際幼崽= 0;

在實際上不使用Lion新屬性擴展類的構造函數中。將這些屬性作為字段添加到類中Animal

private int age = 0;
private int cubs = 0;

然后在類的構造函數中初始化它們Lion(如果需要)。

  1. 在方法中public static void main(String args[]),您試圖使用 它沒有的Lion類字段。age, cubs見第 1 點。

  2. 該類有public Integer getWeight()2Liontype個錯誤。首先,變量weight未定義,其次缺少返回語句,盡管該方法必須返回一個Integer值。


查看完整回答
反對 回復 2023-04-26
  • 2 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號