Созданы следующие классы, на данный момент нет интерфейса / абстрактного класса:
- Test - для создания тестовых данных
- Music - должны храниться все CD
- CD- должен хранить Исполнитель и название CD + все песни
- Исполнитель - содержит только имя строки
- Песня - содержит конструктор по умолчанию с (Artist anArtist, String songtitle, String Duration)
- Duration - для продолжительности песни и последующих вычислений
Я попробовал ArrayList, но он перезаписывается при добавлении другого CD.Мне нужен тип данных, который хранит данные со ссылкой на другой массив.например: сохранить исполнителя и название CD1 и ссылку на другой массив, содержащий все песни с CD1.
спасибо
код из класса Test:
Artist aArtist = new Artist("artist1");
CD aCD = myMusic.addCD(aArtist, "CD1");
aCD.addSong(aArtist, "song1", "1:00");
aArtist = new Artist("artist2");
CD aCD = myMusic.addCD(aArtist, "CD2"); //Overwrites arraylist from CD1
aCD.addSong(aArtist, "song2", "2:00");
я изменилмои ArrayLists в классе Music и CD класса ... я думаю, что есть более простой способ решить этот урок, но вот код: (выводит все сохраненные песни и название CD)
class Music:
import java.util.ArrayList;
public class Music {
private ArrayList<CD> myCDs = new ArrayList<CD>();
public CD addCD(Artist anArtist, String cdTitle) {
CD aCD = new CD(anArtist, cdTitle);
myCDs.add(aCD);
return aCD;
}
public void showData() {
for (int i = 0; i < myCDs.size(); i++) {
for (int j = 0; j < myCDs.get(i).getMyCD().size(); j++) {
System.out.println(myCDs.get(i).getMyCD().get(j).getSong());
}
}
}
}
класс CD:
import java.util.ArrayList;
public class CD {
private String cdTitle;
private ArrayList<Song> myCD = new ArrayList<Song>();
public CD(Artist aArtist, String cdTitle) {
setMyCD(aArtist, cdTitle);
}
public ArrayList<Song> getMyCD() {
return myCD;
}
public String getMyCDtitle() {
return cdTitle;
}
public void setMyCD(Artist anArtist, String cdTitle) {
this.cdTitle = anArtist.getName() + ": " + cdTitle;
}
public void addSong(Artist anArtist, String aTitle, String aDuration) {
myCD.add(new Song(anArtist, aTitle, aDuration));
}
}
класс Song:
public class Song {
private String song;
public String getSong() {
return song;
}
public void setSong(String song) {
this.song = song;
}
public Song(Artist anArtist, String songtitle, String aDuration) {
Duration songDuration = new Duration(aDuration);
setSong(anArtist.getName() + ": " + songtitle + " ("
+ songDuration.getSongDuration() + ")");
}
}
в целом: как бы вы решили такой проект?Буду признателен за любой совет или диаграмму UML.