TyontekijaOhjelma. +main() (käyttää) + = public - = private



Samankaltaiset tiedostot
Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Mikä yhteyssuhde on?

Luokan sisällä on lista

Olio-ohjelmointi Javalla

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

YHTEYSSUHDE (assosiation)

Periytyminen (inheritance)

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

Listarakenne (ArrayList-luokka)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Olioiden yhteistoiminta

Vahva koostumussuhde (Composition)

Ohjelmoinnin jatkokurssi, kurssikoe

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Rajapinta (interface)

Luokat ja oliot. Ville Sundberg

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

UML ja luokkien väliset suhteet

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Javan perusteita. Janne Käki

Metodien tekeminen Javalla

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Oliot viestivät metodeja kutsuen

18. Abstraktit tietotyypit 18.1

Ohjelmoinnin perusteet, kurssikoe

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

15. Ohjelmoinnin tekniikkaa 15.1

Java kahdessa tunnissa. Jyry Suvilehto

Ohjelmoinnin perusteet Y Python

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Luokan muodostimet (Constructors)

Osion kaksi kertaus. Jukka Juslin. Jukka Juslin

public static void main (String [] args)

1 Tehtävän kuvaus ja analysointi

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Kertaus: yleistys-erikoistus ja perintä

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Poikkeustenkäsittely

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

2. Olio-ohjelmoinista lyhyesti 2.1

1. Olio-ohjelmointi 1.1

Ohjelmistotekniikan menetelmät, koe

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Aalto Yliopisto T Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Java-kielen perusteet

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmoinnin perusteet, 1. välikoe

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Ohjelmistojen mallintaminen, sekvenssikaaviot

Ohjelmointi Palautettavat 10 1 (5) OPPIMISTEHTÄVÄT 10 (opetusviikko 13) merkkijonolista, oliolista

Taulukot. Jukka Harju, Jukka Juslin

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Luokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)

4. Luokan testaus ja käyttö olion kautta 4.1

15. Ohjelmoinnin tekniikkaa 15.1

Toteutusdokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Luokkakirjastot. esiintymämetodien käytöstä:

Ohjelmointi 2, välikoe

Ohjelmointi Tunnilla 1 (5) Viikko 7 tuntitehtäviä: metodien tekeminen Javalla

Osio2: Taulukot Jukka Juslin

Oliosuunnittelu ja luokkakohtaiset komponentit

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;

812347A Olio-ohjelmointi, X Reflektiivisyys

Java-API, rajapinnat, poikkeukset, UML,...

Olio-ohjelmointi Syntaksikokoelma

Lista luokan sisällä

KOHDELUOKAN MÄÄRITTELY

7/20: Paketti kasassa ensimmäistä kertaa

Metodien tekeminen Javalla

Tietorakenteet, laskuharjoitus 7,

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

Osio2, olio-ohjelmointi: Luokkien ja olioiden käyttäminen Jukka Juslin

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Ohjelmoinnin peruskurssi Y1

Hakemistojen sisällöt säilötään linkitetyille listalle.

ict02d Osio2- luento 3 Olio-ohjelmointi: Luokkien kirjoittaminen

JavaScript alkeet Esimerkkikoodeja moniste 3 (Metropolia 11/2011)

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

Ohjelmoinnin perusteet Y Python

Ohjelmointi 2 / 2011 Välikoe / 25.3

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Kielioppia: toisin kuin Javassa

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Transkriptio:

1 (6) OPPIMISTEHTÄVÄT 11 (opetusviikko 15) Periytyminen, Rajapinta, Kertaus 1) Periytyminen: Periytä Henkilo-luokasta Tyontekija-aliluokka. Tyontekija-luokalla on attribuutti tuntipalkka (desimaaliluku). Katso tarkemmat tiedot luokkakaaviosta alla. Henkilo - nimi - osoite + Henkilo() + Henkilo(...) +setnimi() +setosoite() +getnimi() +getosoite() (periytyy) TyontekijaOhjelma Tyontekija - tuntipalkka +Tyontekija() +Tyontekija(...) +settuntipalkka() +gettuntipalkka() (käyttää) + = public - = private Tee Tyontekija-luokkaan parametriton ja parametrillinen konstruktori. Parametrilliselle konstruktorille annetaan parametrina nimi, osoite ja tuntipalkka. Tee Tyontekija-luokkaan tuntipalkka-attribuutille get- ja set-metodit sekä tostring-metodi. Tee pääohjelma TyontekijaOhjelma, missä Tyontekija-luokan olio luodaan parametrittomalla konstruktorilla. Muuta työntekijän tiedot set-metodeilla. Näytä tiedot get-metodeilla. Syötä työntekijan tiedot! Anna nimi: Matti Korhonen Anna osoite: Helsinki Anna tuntipalkka: 15,00 TYÖNTEKIJÄTIEDOT Nimi: Matti Korhonen Osoite: Helsinki Tuntipalkka: 15.0 2) Periytyminen: Tee Tuote-luokka, jolla on attribuutit tuotekoodi, nimi, hinta. Periytä Tuoteluokasta KirjaTuote-aliluokka ja DVDTuote-aliluokka. KirjaTuote-luokalla on attribuutit sivumäärä ja sidosasu (pokkari/kovakantinen). DVDTuote-luokan attribuutit kesto ja ikäsuositus. Katso tarkemmin luokkakaavio alla.

2 (6) Tuote -tuotekoodi -nimi -hinta +Tuote() +Tuote(...) +settuotekoodi() +setnimi() +sethinta() +gettuotekoodi() +getnimi +gethinta() - = private += public periytyy periytyy TuotteetOhjelma KirjaTuote -sivumaara -sidosasu +KirjaTuote() +KirjaTuote(...) +setsivumaara() +setsidosasu() +getsivumaara() +getsidosasu() DVDTuote -kesto -ikasuositus +DVDTuote() +DVDTuote(...) +setkesto() +setikasuositus() +getkesto() +getikasuositus() käyttää käyttää Tee pääohjelma TuotteetOhjelma, missä luodaan yksi KirjaTuote-luokan olio ja yksi DVDTuoteluokan olio. Tuotteille asetetaan alla olevan esimerkin mukaiset tiedot ja lopuksi tiedot tulostetaan näytölle. Syötä kirjatuotteen tiedot! Anna tuotekoodi: 1 Anna nimi: Peppi Pitkätossu seikkailee Anna hinta: 35,50 Anna sivumäärä: 25 Anna sidosasu: kovakantinen Syötä dvdtuotteen tiedot! Anna tuotekoodi: 2 Anna nimi: Risto Räppääjä ja viileä Venla Anna hinta: 14,90 Anna kesto(min): 75 Anna ikäsuositus: S KIRJATUOTTEEN TIEDOT: Tuotekoodi: 1 Nimi: Peppi Pitkätossu seikkailee Hinta: 35.5 Sivumäärä: 25 Sidosasu: kovakantinen DVDTUOTTEEN TIEDOT: Tuotekoodi: 2 Nimi: Risto Räppääjä ja viileä Venla

3 (6) Hinta: 14.9 Kesto(min): 75 Ikäsuositus: S 3) Rajapinta: Korttipino on rajapinta, jossa voidaan lisätä ja poistaa korttipinosta vain päällimmäinen Pelikortti-luokan olio. (Tee Pelikortti-luokka, jonka attribuutteja ovat maa (merkkijono), numero (int).) Tee Korttipino-rajapintaluokka (interface), jonka neljä palvelua ovat: void lisaa(pelikortti kortti), Pelikortti poista(), // tämä metodi palauttaa viittauksen poistettuun Pelikortti-luokan olioon int annakoko(), Pelikortti anna(int index). Tee Korttipakka-luokka, joka toteuttaa Korttipino-rajapinnan. Katso tarkemmin luokkakaavio alla. <<Interface>> Korttipino +lisaa(pelikortti kortti) +poista() +annakoko() +anna(int index) Korttipakka (toteuttaa) 0..* Pelikortti -maa: String -numero: int +Pelikortti() +Pelikortti(...) +setmaa() +setnumero() +getmaa() +getnumero() +lisaa(pelikortti kortti) +poista() +annakoko() +anna(int index) 1 käyttää KorttipakkaOhjelma Korttipakka-luokalla on kortit-attribuutti, joka on lista Pelikortti-tyyppisiä olioita. Tee KorttipakkaOhjelma, missä luodaan Korttipakka-luokan olio ja lisätään sitten Pelikortti-luokan olioita pakkaan. Lopuksi tulostetaan korttipakan sisältö korttipakan päällimmäisestä kortista aloittaen. Tehtävä vastaa kahta tehtävää. Anna pelikortin maa(-lopettaa):pata Anna pelikortin numero: 3 Anna pelikortin maa(-lopettaa):ruutu Anna pelikortin numero: 7 Anna pelikortin maa(-lopettaa):hertta Anna pelikortin numero: 10 Anna pelikortin maa(-lopettaa):- Korttipakassa on 3 korttia: Hertta 10 Ruutu 7 Pata 3

4 (6) 4) Kertaus: Tee luokka Opiskelija, jolla on attribuutit opiskelijanumero (merkkijono), nimi (merkkijono). Tee Opiskelija-luokkaan parametriton ja parametrillinen konstruktori, get-ja setmetodit sekä tostring-metodi. Tee luokka Suoritus, jolla on attribuutit kurssitunnus (merkkijono), arvosana (kokonaisluku) ja suorituspaiva (Date-luokka). Tee luokkaan parametriton ja parametrillinen konstruktori, get-ja setmetodit sekä tostring-metodi. Lisää Opiskelija-luokkaan attribuutti suoritukset, joka on lista Suoritus-luokan olioita. Lisää suoritukset-attribuutille get-metodi ja addsuoritus-metodi, jolla listaan voidaan lisätä uusi suoritus. Katso tarkemmin luokkakaavio alla. Opiskelija -opiskelijanro: String -nimi: String +Opiskelija() +Opiskelija(...) +setopiskelijanro() +setnimi() +getopiskelijanro() +getnimi() +getsuoritukset() +addsuoritus() 1 0..* Suoritus -kurssitunnus: String -arvosana: int -suorituspvm: Date +Suoritus() +Suoritus(...) +setkurssitunnus() +setarvosana() +setsuorituspvm +getkurssitunnus() +getarvosana() +getsuorituspvm() OpiskelijaSuoritusSovellus (köyttää) - opiskelijat: ArrayList<Opiskelija> -lisaaopiskelija() -naytaopiskelija() -naytaopiskelijat() -lisaasuoritus()... Tee OpiskelijaSuoritusSovellus, millä voidaan käsitellä useita opiskelijoita. Anna valintasi (0-4): 1 Anna opiskelijanumero: a11 Anna nimi: Kalle Korhonen Anna valintasi (0-4): 1 Anna opiskelijanumero: a22 Anna nimi: Liisa Laaksonen

5 (6) Anna valintasi (0-4): 2 Opiskelijanumero: a11 Nimi: Kalle Korhonen Opiskelijanumero: a22 Nimi: Liisa Laaksonen Anna valintasi (0-4): 4 Anna opiskelijanumero: aaa Opiskelijaa ei ole numerolla aaa Anna valintasi (0-4): 4 Anna opiskelijanumero: a1234567 Anna kurssitunnus: ICT1TA006 Anna arvosana: 5 Anna suorituspäivä (pp.kk.vvvv): 21.12.2013 Anna valintasi (0-4): 4 Anna opiskelijanumero: a1234567 Anna kurssitunnus: SWD4TA013 Anna arvosana: 4 Anna suorituspäivä (pp.kk.vvvv): 28.2.2014 Anna valintasi (0-4): 2 Opiskelijanumero: a11 Nimi: Kalle Korhonen

6 (6) ICT1TA006 5 SWD4TA013 4 Opiskelijanumero: a22 Nimi: Liisa Laaksonen Anna valintasi (0-4): 3 Anna opiskelijanumero: aa Opiskelijaa ei ole numerolla aa Anna valintasi (0-4): 3 Anna opiskelijanumero: a11 Opiskelijanumero: a1234567 Nimi: Kalle Korhonen ICT1TA006 5 SWD4TA013 4 Anna valintasi (0-4): 0