Osatehtävässä 2 toteutetaan verkkokauppaan liittyviä luokkia.
Osatehtävä 2 tehdään hakemistossa Harjoitus3/Osa2.
Tuote
Toteuta abstrakti luokka Tuote, joka esittää yksittäistä
verkkokaupan myymää tuotetta. Luokalla on seuraavat ominaisuudet:
String tunnus
String kuvaus
Luokalla on seuraavat metodit:
Tuote(String tunnus, String kuvaus)
String tunnus()
String kuvaus()
Kirja
Tee Tuote-luokan alaluokka Kirja. Luokalla on
seuraavat ominaisuudet (Luokasta Tuote perittyjen
lisäksi):
String isbn
String nimi
SortedSet kirjoittajat
Luokalla on seuraavat metodit:
Kirja(String tunnus, String nimi, String[]
kirjoittajat, String isbn)
String-taulukossa. Luontimetodi muodostaa niistä
järjestetyn joukon ja tallettaa ominaisuusmuuttujaan
kirjoittajat. Tuotteen kuvausta ei anneta parametrina,
vaan se muodostetaan luontimetodissa kirjan ja kirjoittajien nimistä
sekä ISBN-numerosta.
String isbn()
String nimi()
SortedSet kirjoittajat()
String toString()
CD
Tee Tuote-luokan alaluokka CD. Sillä on
Tuote-luokassa määriteltyjen attribuuttien lisäksi
seuraavat ominaisuudet:
String nimi
String esittäjä
Luokalla on seuraavat metodit:
CD(String tunnus, String nimi, String
esittäjä)
String nimi()
String esittäjä()
String toString()
Valikoima
Kirjoita luokka Valikoima, joka sisältää verkkokaupan
tarjoamat tuotteet, jotka ovat siis kirjoja ja CD:itä. Luokalla on
seuraavat ominaisuudet:
Map tuotteet
Luokalla on seuraavat metodit:
Valikoima()
void lisääTuote(Tuote uusi)
void poistaTuote(Tuote tuote)
Collection tuoteKokoelma()
Collection kirjaKokoelma()
Collection CDKokoelma()
Tuote haeTuote(String tunnus)
tunnus. Jos sitä ei
löydy, palauttaa arvon null.
Set haeTuotteet(String s)
s. Palauttaa tuloksen joukkona. Merkkijonon
s etsiminen kuvauksesta tapahtuu
String-luokan metodilla indexOf.
String toString()
Ostoskori
Tee luokka Ostoskori, joka sisältää asiakkaan valitsemat
tuotteet. Luokalla on seuraavat ominaisuudet:
String asiakas
List ostokset
Luokalla on seuraavat metodit:
Ostoskori(String asiakas)
String asiakas()
void lisääTuote(Tuote uusi)
void poistaTuote(Tuote tuote)
List tuotteet
String toString()
Verkkokauppa
Laadi pääohjelmaluokka, jolla voit testata verkkokauppaa.