中國MOOC_面向對象程序設計——Java語言_第4章 繼承與多態_第4周編程題_將MP3媒體類型存放進Database

本週咱們介紹了以繼承方式實現的媒體資料庫,在課程代碼實現的基礎上,請實現一個表達MP3的媒體類型,能和CD、DVD同樣存放進這個Database。請提交這個MP3類的代碼。若是你認爲爲了能存放MP3,須要修改Item和Database,也請一併提交Item和Database的代碼。java

答案內容超過5000字建議使用附件形式上傳
//提示:這裏的Item類和MP3類不能在Database類裏面建立
//須要在本包裹內New一個新的Class,分別建立Item類和MP3類
//還有別忘了要在Database類前加上:import java.util.ArrayList

import java.util.ArrayList;
public class Database {
    private ArrayList<Item> listItem = new ArrayList<Item>();//容器,用來裝Item類的對象
 
    //add方法,用來往媒體庫裏面添加東西
    public void add(Item item) {
        listItem.add(item);
    }
 
    //list方法,用來展現媒體庫裏面的東西   
    public void list() {
        for(Item item:listItem) {
            item.print();
        }
    }
     
    public static void main(String[] args) {
        Database db = new Database();
        //往db裏面添加MP3
        db.add(new MP3("Faded",3,true,"...","Alan Walker",10));
        db.add(new MP3("That Girl",4,true,"...","Olly Murs",10));
        db.list();//列出db中的東西
    }
}


public class Item {
//  定義Item類型的屬性
  private String title;
  private int playingTime;
  private boolean gotIt = false;
  private String comment;
   
//  構造函數,用來初始化Item類型的對象
//  可以使用eclipse菜單欄中的Source\Generate Constructor Using Fields快速建立
  public Item(String title, int playingTime, boolean gotIt, String comment) {
      super();
      this.title = title;
      this.playingTime = playingTime;
      this.gotIt = gotIt;
      this.comment = comment;
  }

//  print方法
  public void print() {
      System.out.print(title+":"+playingTime+":"+gotIt+":"+comment);
  }
}


public class MP3 extends Item {
//  定義MP3類區別於父類Item的屬性
  private String artist;
  private int numofTracks;

//  構造函數
//  可以使用eclipse菜單中Source/Generate Constructors from Superclass建立後修改
  public MP3(String title, int playingTime, boolean gotIt, String comment,String artist,int numofTracks) {
      super(title, playingTime, gotIt, comment);//括號內屬性從父類得到初始化
      this.artist=artist;
      this.numofTracks=numofTracks;
  }

//  print方法
  public void print() {
      System.out.print("MP3:");
      super.print();//調用父類的print方法輸出前半部分
      System.out.println(":"+artist+":"+numofTracks);
//    調用本地println方法輸出後半部分
//    這裏用println方法,能夠用換行的方式分開先後兩條MP3,輸出更美觀
  }
}
 
相關文章
相關標籤/搜索