Tässä tehtävässä tarkoituksena on hyödyntää edellisessä tehtävässä toteutettua Artist-luokkaa toisen luokan kanssa. Musiikkikappaleeseen on siis tarkoitus tallentaa tieto siitä, minkä artistin kappale se on. Tieto tallennetaan asettamalla Artist-olio talteen Song-olion oliomuuttujaan.
Kirjoita uusi luokka nimeltä Song. Song-luokassa tulee olla seuraavat oliomuuttujat ja -metodit:
Luokka Song
Getterien ja setterien automaattiseen generointiin voit käyttää myös Eclipsen koodigeneraattoria: Generaattori
toString-metodi
Song-luokan toString-metodin tulee palauttaa "KAPPALEEN_NIMI by ARTISTIN_NIMI". Esimerkiksi:
"Hooked on a Feeling by David Hasselhoff"
Jos Song-oliolle ei ole asetettu artistia tai artistilla ei ole nimeä, toString-metodin tulee palauttaa vain kappaleen nimi, esimerkiksi:
"Hooked on a Feeling"
Artist-luokan toteutuksen on oltava täsmälleen samanlainen kuin edellisessä tehtävässä. Sinun ei tarvitse palauttaa omaa pääohjelmaa ja kirjoittamasi luokat eivät saa tulostaa mitään.
Example output:
= Suoritetaan ohjelma =
Artist artist = new Artist("Rick Astley", 1966);
System.out.println(artist);
Song song = new Song();
song.setTitle("Never Gonna Give You Up");
song.setYear(1987);
song.setLength(215);
System.out.println(song);
song.setArtist(artist);
System.out.println(song);
= Ohjelman tuloste =
Rick Astley
Never Gonna Give You Up
Never Gonna Give You Up by Rick Astley
Artist.java
public class Artist {
private String name;
private int yearOfBirth;
public Artist(String name, int yearOfBirth) {
this.name = name;
this.yearOfBirth = yearOfBirth;
}
public void setName(String name) {
this.name = name;
}
public void setYearOfBirth(int yearOfBirth) {
this.yearOfBirth = yearOfBirth;
}
public String getName() {
return this.name;
}
public int getYearOfBirth() {
return this.yearOfBirth;
}
@Override
public String toString() {
return this.name;
}
}
Song.java
public class Song {
private String title;
private Artist artist;
private int year;
private int length;
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public Artist getArtist() {
return this.artist;
}
public void setArtist(Artist artist) {
this.artist = artist;
}
public int getYear() {
return this.year;
}
public void setYear(int year) {
this.year = year;
//return this.year;
}
public int getLength() {
return this.length;
}
public void setLength(int length) {
this.length = length;
//return this.length;
}
public String toString() {
if (this.artist != null) {
return this.title + " by " + this.artist;
} else {
return this.title;
}
}
}