作者:不变de诺言2502890365 | 来源:互联网 | 2023-10-11 23:24
//提示:这里的Item类和MP3类不能在Database类里面创建//需要在本包裹内New一个新的Class,分别创建Item类和MP3类//还有别忘了要在Database类前
//提示:这里的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,输出更美观