本週我們介紹了以繼承方式實現的媒體資料庫,在課程程式碼實現的基礎上,請實現一個表達MP3的媒體型別,能和CD、DVD一樣存放進這個Database。請提交這個MP3類的程式碼。如果你認為為了能存放MP3,需要修改Item和Database,也請一併提交Item和Database的程式碼。
答案內容超過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選單欄中的SourceGenerate 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,輸出更美觀 } }