本週咱們介紹了以繼承方式實現的媒體資料庫,在課程代碼實現的基礎上,請實現一個表達MP3的媒體類型,能和CD、DVD同樣存放進這個Database。請提交這個MP3類的代碼。若是你認爲爲了能存放MP3,須要修改Item和Database,也請一併提交Item和Database的代碼。java
//提示:這裏的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,輸出更美觀 } }