中国MOOC_面向对象程序设计——Java语言_第4章 继承与多态_第4周编程题_将MP3媒体类型存放进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,输出更美观 } }