본문 바로가기

Programming language/Java

Java - 실무5 [MP3플레이어]

Artist.java

- 아티스트는 여러 앨범을 갖고 있다,

- Album ArrayList가 있어야한다.

import java.util.ArrayList;

//Artist는 여러 앨범을 가지고 있고 앨범들은 여러 곡들을 가지고 있다.

public class Artist {
    private String artistName;
    // 여러 앨범들을 가지는 ArrayList
    ArrayList<Album> albums = new ArrayList<>();

    // 생성자 인수 : artistName
    public Artist(String artistName){
        this.artistName = artistName;
    }

    // 앨범 추가 메소드
    public void addAlbum(Album album){
        albums.add(album);
    }

    // 앨범 getter
    public ArrayList<Album> getAlbums(){
        return this.albums;
    }
    // 앨범 이름 getter
    public String getArtistName(){
        return this.artistName;
    }


}

 

Album.java

- 앨범은 여러 곡들을 갖고 있다.

- Song ArrayList가 있어야한다.

import java.util.ArrayList;

// 아티스트는 여러 앨범들을 갖고 앨범들은 여러 곡들을 가진다.
public class Album {
    private String albumName;
    private int madeyear;
    private Artist artist;

    // 여러곡을 가지는 Song ArrayList
    ArrayList<Song> songs = new ArrayList<>();

    // 생성자 인수 : albumName, madeYear, artist
    public Album(String albumName, int madeYear, Artist artist){
        this.albumName = albumName;
        this.madeyear = madeYear;
        this.artist = artist;
    }

    // 곡 추가 메소드
    public void addTrack (Song song){
        songs.add(song);
    }
    // Track getter : 인수로 인덱스를 받아 songs 리스트의 곡을 반환
    public Song getTrack (int index){
        return this.songs.get(index - 1);
    }

    // madeYear getter
    public int getMadeyear(){
        return this.madeyear;
    }

    // albumName getter
    public String getAlbumName() {
        return this.albumName;
    }


}

Song.java

public class Song {
    private String songName;
    private Artist artist;
    private Album album;

    // 생성자 인수 : songName, artist, album
    public Song (String songName, Artist artist, Album album){
        this.songName = songName;
        this.artist = artist;
        this.album = album;
    }

    // String toString 오버라이드
    @Override
    public String toString(){
        String answer = this.songName + " - " +this.artist.getArtistName() +"\n"+this.album.getAlbumName()+"("+this.album.getMadeyear()+")";
        return answer;
    }
}