中國MOOC_物件導向程式設計——Java語言_第4章 繼承與多型_第4周程式設計題_將MP3媒體型別存放進Database

SongZi_Yang發表於2018-12-13

本週我們介紹了以繼承方式實現的媒體資料庫,在課程程式碼實現的基礎上,請實現一個表達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選單欄中的SourceGenerate 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,輸出更美觀
  }
}

  

 

 

 

相關文章