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