java_第4章 继承与多态_第4周编程题_将MP3媒体类型存放进Database

本周我们介绍了以继承方式实现的媒体资料库,在课程代码实现的基础上,请实现一个表达MP3的媒体类型,能和CD、DVD一样存放进这个Database。请提交这个MP3类的代码。如果你认为为了能存放MP3,需要修改Item和Database,也请一并提交Item和Database的代码。

答案内容超过5000字建议使用附件形式上传

 1 import java.util.ArrayList;
 2
 3 public class Database {
 4     private ArrayList<Item> listItem = new ArrayList<Item>();//容器,用来装Item类的对象
 5
 6     //add方法,用来往媒体库里面添加东西
 7     public void add(Item item) {
 8         listItem.add(item);
 9     }
10
11     //list方法,用来展示媒体库里面的东西
12     public void list() {
13         for(Item item:listItem) {
14             item.print();
15         }
16     }
17
18     public static void main(String[] args) {
19         Database db = new Database();
20         //往db里面添加MP3
21         db.add(new MP3("Faded",3,true,"...","Alan Walker",10));
22         db.add(new MP3("That Girl",4,true,"...","Olly Murs",10));
23         db.list();//列出db中的东西
24     }
25
26 }
27
28 public class Item {
29 //    定义Item类型的属性
30     private String title;
31     private int playingTime;
32     private boolean gotIt = false;
33     private String comment;
34
35 //    构造函数,用来初始化Item类型的对象
36 //    可使用eclipse菜单栏中的Source\Generate Constructor Using Fields快速创建
37     public Item(String title, int playingTime, boolean gotIt, String comment) {
38         super();
39         this.title = title;
40         this.playingTime = playingTime;
41         this.gotIt = gotIt;
42         this.comment = comment;
43     }
44
45 //    print方法
46     public void print() {
47         System.out.print(title+":"+playingTime+":"+gotIt+":"+comment);
48     }
49 }
50
51 public class MP3 extends Item {
52 //    定义MP3类区别于父类Item的属性
53     private String artist;
54     private int numofTracks;
55
56 //    构造函数
57 //    可使用eclipse菜单中Source/Generate Constructors from Superclass创建后修改
58     public MP3(String title, int playingTime, boolean gotIt, String comment,String artist,int numofTracks) {
59         super(title, playingTime, gotIt, comment);//括号内属性从父类获得初始化
60         this.artist=artist;
61         this.numofTracks=numofTracks;
62     }
63
64 //    print方法
65     public void print() {
66         System.out.print("MP3:");
67         super.print();
68         System.out.println(":"+artist+":"+numofTracks);
69     }
70 }

原文地址:https://www.cnblogs.com/songzi-yang/p/10117198.html

时间: 2024-10-19 14:55:34

java_第4章 继承与多态_第4周编程题_将MP3媒体类型存放进Database的相关文章

《Java从小白到大牛》之第12章 继承与多态

<Java从小白到大牛>纸质版已经上架了!!! 类的继承性是面向对象语言的基本特性,多态性前提是继承性.Java支持继承性和多态性.这一章讨论Java继承性和多态性. Java中的继承 {#java} 为了了解继承性,先看这样一个场景:一位面向对象的程序员小赵,在编程过程中需要描述和处理个人信息,于是定义了类Person,如下所示: //Person.java文件 package com.a51work6; import java.util.Date; public class Person

第六章 继承和多态

1.继承有哪些特性: 1.单根性    2.传递性 2.父类的哪些成员可以被继承? 私有成员不能被继承,父类的构造 3.继承: 在C#中,如果一个类后面通过冒号又跟了另外一个类,那么我们就称冒号前面的类为子类, 冒号后面的类为父类,这种书写方式放映出来的关系就称为类的继承关系 4.子类:派生类   父类:基类或者超类 5.满足什么条件的类可以使用继承? 满足is a关系的两个类可以使用继承 例如:经理 is a 员工 6.如果new一个子类对象,那么如下操作流程: 1.先 定位到子类对应构造函数

第七章 继承和多态

1 继承 1.1 基类与派生类 C#中的类不支持多继承.只有在类和接口之间可以实现多继承. public static void Main() { Business c1 = new Business(); c1.Name = "李明"; c1["办公电话"] = "07188888888"; c1.Output(); ClassMate c2 = new ClassMate(); c2.Name = "张鹏"; c2.Bir

C++自学笔记_string测试编程题_《C++ Primer》

今天<C++ Primer>学完第9章,关于string类型,找道题目测试一下效果. 题目描述: 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串. 输入: 多组数据.每组数据输入包括3行, 第1行是包含多个单词的字符串 s, 第2行是待替换的单词a,(长度<=100) 第3行是a将被替换的单词b.(长度<=100) s, a, b 最前面和

中国MOOC_零基础学Java语言_期末考试的编程题_1二进制的前导的零

期末考试的编程题 返回 这是期末考试的编程题,在60分钟内,你可以多次提交,直到正确为止. 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止时间之前提交答案,系统将取其中的最高分作为最终成绩. 1 二进制的前导的零(10分) 题目内容: 计算机内部用二进制来表达所有的值.一个十进制的数字,比如18,在一个32位的计算机内部被表达为00000000000000000000000000011000.可以看到,从左边数过来,在第一个1之前,有27

笔试常见编程题_其它

1.判断一个整数里面有多少个1? int fun1(int num) { int count = 0; while(num) { num=num&(num-1); count++; } return count; } 2.将字符串中每个单词的第一个字符变为大写? #include <iostream> #include <string.h> using namespace std; //将字符串中每个单词的第一个字符变为大写? char *fun(char *str) {

C语言程序设计_浙江大学——第1周编程练习_逆序的三位数

1 逆序的三位数(5分) 题目内容: 逆序的三位数: 程序每次读入一个正三位数,然后输出逆序的数字.注意,当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7. 提示:用%10可以得到个位数,用/100可以得到百位数....将这样得到的三个数字合起来:百位*100+十位*10+个位,就得到了结果. 注意:除了题目要求的输出,不能输出任何其他内容,比如输入时的提示,输出时的说明等等都不能.这道题目要求输出逆序的数字,程序就只能输出这个数字,除此之外任何内容都不能输出. 输

剑指Offer_编程题_从尾到头打印链表

题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 创建链表相关,头插法和尾插法 关于头插法,可以next可以理解成前一个节点地址,插入顺序: 1.头节点传入,开始创建A数据,头节点的next指向A数据的内存地址,A节点的next替换成头节点的 2.头节点再传入,创建B数据,头节点的next又换成了指向B的内存地址,B节点的next替换头节点的A: 总结一下:插入时候,一直在头节点的上面插入数据,原来的数据被“顶”上去了: 头插法遍历的时候,头节点开始,一个一个往上遍历.这

3. 第一章:C#面向对象编程之继承和多态

第一章:C#面向对象编程 第二节:继承和多态 继承可以让class具有一种特殊的能力,即实现class本身定义的所有功能外,还可以对父类(或称为基类.超类)的某些属性和功能进行扩展,这样的类我们称之为子类(或派生类). 继承有如下的几个规则: 1. 可传递性: 如: C是B的子类,B是A的子类,那么C会同时继承B和A:(object为所有类的基类) 2. 唯扩展性: 子类应是对父类的扩展,而不能在子类除去父类里面的定义: 3. 构造函数和析构函数不能被继承: 除去构造函数和析构函数不能被继承,其