8. Periytyminen.

Slides:



Advertisements
Samankaltaiset esitykset
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Advertisements

– Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä.
19. Unified Modeling Language (UML)
12. Monimuotoisuus Sisällys •Johdanto. •Periytymismekanismi määrittää alityypityksen. − Viitteiden sijoitus ja vertailu. •Staattinen ja dynaaminen.
6. Metodit.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 12 Periytyminen.
16. Javan omat luokat.
Muutamia käsitteitätMyn1 Muutamia käsitteitä •Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan,
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
9. Periytyminen Javassa.
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
17. Kooste Kooste Kooste (aggregation) on luokkien A ja B välinen suhde, joka tarkoittaa “A on B:n osa” tai “A kuuluu B:hen”. − Koostesuhteessa.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Johdetun luokan olion esittely... tMyn1 Johdetun luokan olion esittely ja määrittely Esittelyluokka tarkoittaa olion tunnuksen luokkaa. Määrittelyluokka.
© Jukka Harju, Sisältö 1. Mitä on periytyminen Javassa? 2. Periytyminen UML-luokkakaaviossa 3. Termejä 4. Periytymishierarkia 5. Periytyminen vs.
Vesa Ollikainen & Outi Grotenfelt
11. Rajapinnat Sisällys Mitä rajapinnat ovat? Kuinka ne määritellään ja otetaan käyttöön? Moniperiytyminen rajapintojen avulla. Varoituksen.
Monimuotoinen luokka tMyn1 Monimuotoinen luokka Monimuotoinen luokka mahdollistaa saman jäsenfunktion toteutuksen monella tavalla. Tällöin puhutaan virtuaalisesta.
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
Eliömaailman luokittelu jäsentää elämän monimuotoisuutta
Matematiikkaa 3 a Kertausjakso – Geometria MATEMATIIKKAA 3 A © VARGA–NEMÉNYI RY 2016.
Olio-ohjelmoinista lyhyesti. 2.2 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen.
Yksikkötestaus ● Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin.
Finnan käyttäjät, keitä he ovat?
17. Kooste.
5. Kapselointi.
6. Metodit.
3. Olio-ohjelmoinista lyhyesti
Ohjeet digikasvion täyttämiseen, osa 1
Eutanasia s
Johdatus elämänkatsomustietoon Kouluvierailut
13. Pakkaukset.
11. Rajapinnat.
8. Näppäimistöltä lukeminen
Perehdy, Opi ja Kehitä - Arvioi! (POKA)
Miten oppilaiden vertaisarviointitaitoja tullaan kehittämään Mäntsälässä luokilla 1-9?
Tekstinhuoltoa 3.
Aloita täältä, täydennä säännöllisesti!
15. Lohkot.
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Luokan määrittely class-määreellä
EPortfolio Väline oman osaamisen kehittymisen seurantaan ja dokumentointiin. HOPS-koulutus Ilona Laakkonen, Student Life.
Varjostus Oppia ikä kaikki tarjoaa verkoston jäsenille mahdollisuuden varjostaa kollegaa toisessa oppilaitoksessa. Varjostus on vertaisoppimisen menetelmä.
– Ohjelmistojen mallintaminen, kesä 2010
8. Näppäimistöltä lukeminen
Muutamia käsitteitä Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan, perusluokan (superclass,
Kielitietoisuus.
Työliikekipeytyminen 33 §
15. Lohkot.
Ehkäisevä päihdetyö EHYT ry
6. Metodit.
8. Periytyminen.
4. Attribuutit.
15. Ohjelmoinnin tekniikkaa
7. Hyvä ohjelmointitapa..
– Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä
Mallintamisen metamalli ja notaatiot
ePofo – elektroninen portfolio
Suomen evankelis-luterilaisen kirkon toiminnan suunta vuoteen 2020
Asiakas- ja palveluohjaustyöryhmä helmikuu 2018
OTA TÄMÄ VIESTI VAKAVASTI!
Kaveritaidot.
MUSIIKIN TUNTISUUNNITELMARAKENNE/KASOPE/mervasti oulu
3. Attribuutit.
12. Monimuotoisuus.
4. Luokan testaus ja käyttö olion kautta
2. Olio-ohjelmoinnin perusteita
Esityksen transkriptio:

8. Periytyminen

Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Filosofinen ja käytännönläheinen näkökulma periytymiseen. Periytymisen soveltaminen.

Mitä on periytyminen? Periytyminen (inheritance) tarkoittaa sitä, että luokka B saa käyttöönsä osan tai kaikki luokan A piirteistä. Tällöin sanotaan, että A on B:n yliluokka (superclass) ja vastaavasti B on A:n aliluokka (subclass). A a b B c Piirteet: a, b Piirteet: a, b, c UML:n luokkakaaviossa luokkaa symboloi laatikko, jossa annetaan luokan nimi ja usein myös luokan piirteet. Attribuutit ja metodit erotetaan myöhemmin väliviivalla, kun luokkasymboleita ryhdytään piirtämään hieman tarkemmin. Periytymissuhde piirretään onttokärkisenä yliluokkaan osoittavana nuolena.

Mitä on periytyminen? Yliluokalla on yksi tai useampia aliluokkia. Aliluokka tuntee yliluokkansa, mutta ei aliluokkiaan. Luokka A on luokan B esi-isä (ancestor) jos A on B:n yliluokka tai B:n yliluokan esi-isä. Luokka B on luokan A jälkeläinen (descendant), jos B on A:n aliluokka tai A:n jonkin aliluokan jälkeläinen. A B C D

Mitä on periytyminen? A Piirteet: a, b a b Piirteet: a, b, c Piirteet: a, b, d, e B C d e c D Piirteet: a, b, d, e, f f

Yksittäis- ja moniperiytyminen Yksittäisperiytymisessä (single inheritance) jokaisella aliluokalla on yksi yliluokka. Moniperiytymisessä (multiple inheritance) aliluokalla voi olla useampia yliluokkia. A B A1 B A2

Yksittäis- ja moniperiytyminen Yksittäisperiytyminen tuottaa selkeän puumaisen rakenteen. Moniperiytyminen on kuvattavissa vaikeampiselkoisena verkkona. Molemmin tavoin saadaan aikaiseksi luokkahierarkia, jolla on juuri (root) tai juuria. A B C D

Yksittäis- ja moniperiytyminen Moniperiytymisestä sekä hyötyä että haittaa. Joissakin kielissä, Java mukaan lukien, on vain yksittäisperiytyminen. Moniperiytyminen voidaan ilmaista Javassa rajoitetusti rajapintojen avulla. C++ on esimerkki kielestä, jossa luokalla voi olla useita yliluokkia. Jatkossa periytymisen esittely rajoitetaan vain yksittäisperiytymiseen.

Oliot ja perityt luokat Periytymisen kautta oliolla voi olla useampia luokkia. Jatkossa olion perus-luokaksi sanotaan luokkaa, josta olio on luotu. Kukin yliluokka lisää olioon uuden kerroksen piirteitä (attribuutteja ja/tai metodeja). A A-luokan olio C A C-luokan olio B A B-luokan olio D C D-luokan olio A

Periytymisen käytännön näkökulmasta Periytyminen tukee koodin uudelleenkäyttöä; aliluokkien ei tarvitse toistaa perittyjä piirteitä. Periytymisen avulla voidaan kehittää ohjelmistoja tarkentaen (inkrementaalisesti), koska aliluokkia voidaan lisätä ilman, että yliluokkia tarvitsee muuttaa. Periytymisen avulla voidaan toteuttaa monimuotoisuutta.

Periytyminen filosofisesta näkökulmasta Periytyminen tukee käsitteelliseen mallintamiseen perustuvaa ohjelmistokehitystä: aliluokka on käsitteen erikoistus ja yliluokka on yleistys. Periytymisellä voidaan mallintaa käsitehierarkioita. Periytymistä kutsutaankin joskus yleistämiseksi (generalization), koska periytyminen liittyy läheisesti käsitteellisestä mallintamisesta tuttuun IsA-suhteeseen. Periytyminen on luontevaa, jos lause “Aliluokka IsA Yliluokka.” tuntuu järkevältä. Esimerkiksi “Auto IsA Ajoneuvo.”

Periytymisen soveltaminen Eräs käsitehierarkia periytymisellä esitettynä: Nisäkäs IsA Eläin. Ihminen IsA Nisäkäs, Kissa IsA Nisäkäs. Opiskelija IsA Ihminen, Opettaja IsA Ihminen. Ihminen Opiskelija Opettaja Nisäkäs Eläin Kissa

Periytymisen soveltaminen Aliluokan tulisi aina tuoda yliluokkaansa jokin tarkennus (tai laajennus). Aliluokassa voidaan määritellä uusia piirteitä (attribuutteja ja metodeja). Aliluokka voi korvata (override) yliluokassa ilmentymämetodilla määritellyn toiminnallisuuden toteuttamalla perityn metodin eri tavoin. Korvaaminen on eräs monimuotoisuuden muoto. Aliluokka tyypillisesti rakentaa olion omalla tavallaan.

Nisäkäs, kissa ja ihminen Piirteet: elossa, paino, syö(), onkoIso() elossa, paino, syö(), onkoIso(), henkilötunnus, puhu() väri, häntä, ääntele(), kehrää() Nisäkäs elossa, paino Ihminen Kissa henkilötunnus puhu() väri, häntä ääntele(), kehrää()

Kissa-olio Misse-olio luodaan Kissa-luokasta: Kissa on missen perusluokka. Koska jokainen kissa on nisäkäs, on misse on sekä Kissa että Nisäkäs. Misse perii Nisäkäs-luokasta attribuutit elossa ja paino sekä metodit syö() ja onkoIso(), jotka voidaan korvata Kissa-luokassa siten, että ne toimivat kissalle ominaisesti. Lisäksi missellä on kissoille ominaiset piirteet (esim. attribuutti häntä ja metodi kehrää(). väri, häntä ääntele(), kehrää() elossa, paino syö(), onkoIso() Nisäkäs-kerros Kissa-kerros