中国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,输出更美观
  }
}

  

 

 

 

转载于:https://www.cnblogs.com/songzi-yang/p/10117198.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值