本周我们介绍了以继承方式实现的媒体资料库,在课程代码实现的基础上,请实现一个表达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,输出更美观
  }
}

  

 

 

中国MOOC_面向对象程序设计——Java语言_第4章 继承与多态_第4周编程题_将MP3媒体类型存放进Database的更多相关文章

  1. 中国MOOC_面向对象程序设计——Java语言_第3周 对象容器_1查找里程

    第3周编程题 查看帮助 返回   第3周编程题.注意程序(包括注释)中不能出现汉字. 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后 ...

  2. 中国MOOC_面向对象程序设计——Java语言_第2周 对象交互_秒计时的数字时钟

    第2周编程题 查看帮助 返回   第2周编程题,在课程所给的时钟程序的基础上修改 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系 ...

  3. 中国MOOC_面向对象程序设计——Java语言_第1周 类与对象

    第1周编程题 查看帮助 返回   我们在题目说明中给出了一部分代码,你需要在这部分代码的基础上,按照题目说明编写代码,然后将两部分代码一起提交. 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨 ...

  4. 中国MOOC_面向对象程序设计——Java语言_第2周 对象交互_1有秒计时的数字时钟

    第2周编程题 查看帮助 返回   第2周编程题,在课程所给的时钟程序的基础上修改 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系 ...

  5. 中国MOOC_面向对象程序设计——Java语言_第1周 类与对象_1分数

    第1周编程题 查看帮助 返回   我们在题目说明中给出了一部分代码,你需要在这部分代码的基础上,按照题目说明编写代码,然后将两部分代码一起提交. 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨 ...

  6. 中国MOOC_面向对象程序设计——Java语言_期末考试编程题_1细胞自动机

    期末考试编程题 返回   这是期末考试的编程题 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止时间之前提交答案,系统将取其中的最高分作为最终成 ...

  7. 面向对象程序设计--Java语言第二周编程题:有秒计时的数字时钟

    有秒计时的数字时钟 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成.但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后来做 ...

  8. Java 学习笔记 ------第六章 继承与多态

    本章学习目标: 了解继承的目的 了解继承与多态的关系 知道如何重新定义方法 认识java.lang.object 简介垃圾回收机制 一.继承 继承是java面向对象编程技术的一块基石,因为它允许创建分 ...

  9. 面向对象程序设计--Java语言第三周编程题:查找里程

    查找里程 题目内容: 下图为国内主要城市之间的公路里程: 你的程序要读入这样的一张表,然后,根据输入的两个城市的名称,给出这两个城市之间的里程. 注意:任何两个城市之间的里程都已经给出,不需要计算经第 ...

随机推荐

  1. 用嵌入式块RAM IP核配置一个双口RAM

    本次设计源码地址:http://download.csdn.net/detail/noticeable/9914173 实验现象:通过串口将数据发送到FPGA 中,通过quartus II 提供的in ...

  2. c++ 异常处理(1)

    异常 (exception) 是 c++ 中新增的一个特性,它提供了一种新的方式来结构化地处理错误,使得程序可以很方便地把异常处理与出错的程序分离,而且在使用上,它语法相当地简洁,以至于会让人错觉觉得 ...

  3. Android 开发常用版本控制命令

    1. git 回退到指定版本 // 使用git log命令查看所有的历史版本,获取某个历史版本的id,假设查到历史版本的id是139dcfaa558e3276b30b6b2e5cbbb9c00bbdc ...

  4. Java 数组的创建

    与C.C++不同,Java在定义数组时并不为数组元素分配内存,因此[ ]中无需指定数组元素的个数,即数组长度. 定义一个数组有两种方式: int[] array; int array[]; 对于如上定 ...

  5. ie8兼容视频播放的探索(探索过程稍微有点长,时间紧迫和耐心稍微差一点点的小伙伴直接往下拉)

    需求: 前几天接到一个需求,需要在网页中嵌入视频,并且要兼容ie8:然后我就开始了如下的探索...... 探索过程: 我先思考有什么方法可以在网页中嵌入视频,然后找到2种常用的方法——video标签和 ...

  6. php使用curl模拟登录带验证码的网站[开发篇]

    需求是这样的,需要登录带验证码的网站,获取数据,但是不可能人为一直去记录数据,想通过自动采集的方式进行,如下是试验出来的结果代码!有需要的可以参考下! <?php namespace Home\ ...

  7. localStorage 存满了怎么办?

    先来几道面试题 1.a.meituan.com 和 b.meituan.com 这两个域能够共享同一个 localStorage 吗? 2.在 webview 中打开一个页面:i.meituan.co ...

  8. webpack通过postcss-loader添加浏览器前缀

    在webpack中,我们可以很方便的使用autoprefixer来为css3属性添加不同的浏览器前缀. 首先,需要安装autoprefixer不用多说了,其次是安装postcss-loader(npm ...

  9. php省市联动实现

    设计模式:ajax实现,数据库格式:id,name,parent_id 数据库: CREATE TABLE IF NOT EXISTS `city` ( `id` ) NOT NULL AUTO_IN ...

  10. LeetCode--No.001 Two Sum

    Two Sum Total Accepted: 262258 Total Submissions: 1048169 Difficulty: Easy Given an array of integer ...