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 - oliomuuttujat: - private String title - private Artist artist - private int year (kappaleen julkaisuvuosi) - private int length (kappaleen kesto sekunteina) - konstruktorit: - public Song() - Huom! Luokalle ei ole pakko toteuttaa konstruktoria, mutta jos toteutat sellaisen, konstruktorissa ei saa olla parametrimuuttujia. - julkiset metodit: - getTitle - setTitle - getArtist - setArtist - getYear - setYear - getLength - setLength - toString Getterien ja setterien automaattiseen generointiin voit käyttää myös Eclipsen koodigeneraattoria. Generaattori: https://www.youtube.com/results?search_query=eclipse+generate+getters+and+setters **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; } } } ```