Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Minimaalinen Java-ohjelma •Kaikki ohjelmakoodi on luokkamäärityksen sisällä •Ohjelma käynnistyy ”public static void main(String[] args)”-metodista •System.out.print()
Koostumussuhde Jukka Juslin © Jukka Juslin.
6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 13 Monimuotoisuus.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 12 Periytyminen.
Muutamia käsitteitätMyn1 Muutamia käsitteitä •Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan,
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Ict1td002: Ohjelmointitaito Kertaus Osio 2 - luokat - ilmentymät - viittaus- ja arvomuuttuja - ilmentymien taulukointi HAAGA-HELIA IltaTiko.
© 2010 IBM Corporation1 Sisältö  Uusi sisältö luodaan aina sisällönhallinnassa –Uusi -> Sisältö –Tallenna nimellä olemasta olevasta sisällöstä  Tavallinen.
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely •Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
1. Olio-ohjelmointi.
Olio-mallinnus Tietojärjestelmien suunnittelu KYAMK, Liiketalous, Kouvola Jarkko Ansamäki, 2002.
13. Pakkaukset.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Olio-ohjelmoinnin perusteet luento 3
UML-luokkakaaviot.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
9. Periytyminen Javassa.
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
UML-luokkakaaviot ja Java
Metodit – Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin ”return;”-lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua.
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.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet.
Harjoitustyö 1. Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala2 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva.
Mallinnustavat.
© 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.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Kantaluokan määrittely tMyn1 Kantaluokan määrittely Perinnän käyttöön liittyvät varatut sanat private, protected, public, final ja abstract. Ne tarkoittavat.
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
15. Ohjelmoinnin tekniikkaa Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi.
5. Kapselointi.
Harjoitustyö.
1. Omat operaatiot.
13. Pakkaukset.
11. Rajapinnat.
Poikkeustenkäsittelylohkot try-catch
Kantaluokan määrittely
15. Ohjelmoinnin tekniikkaa
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Kantaluokan määrittely
Luokan määrittely class-määreellä
Muutamia käsitteitä Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan, perusluokan (superclass,
6. Metodit.
13. Pakkaukset.
8. Periytyminen.
4. Attribuutit.
15. Ohjelmoinnin tekniikkaa
3. Attribuutit.
13. Pakkaukset.
8. Periytyminen.
4. Luokan testaus ja käyttö olion kautta
2. Olio-ohjelmoinnin perusteita
Esityksen transkriptio:

Perintä

Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki perimänsä luokan ominaisuudet ja metodit, joita ei ole estetty perimästä Perittävää luokkaa kutsutaan yliluokaksi (superclass) Uutta, yliluokan ominaisuudet perivää luokkaa kutsutaan aliluokaksi (subclass) Perinnän tarkoituksena vähentää koodin uudelleenkirjoittamista

Yleistä Luokka perii yliluokalta myös sen toteuttamat rajapinnat, yliluokat ja kentät Yhdellä luokalla voi olla monta aliluokkaa ja millä tahansa aliluokalla taas omia aliluokkia Normaalissa perinnässä luokka voi periä vain yhden yläluokan Moniperinnässä luokka perii yhden tai useamman yläluokan ominaisuudet ja toiminnot Aliluokkaan voidaan lisätä ominaisuuksia, joita yläluokassa ei ole Periminen ilmaistaan luokan nimen jälkeen tulevalla sanalla extends, jota seuraa perittävän luokan eli yliluokan nimi

Perinnän rajoittaminen (Scala) final -avainsana luokkamäärittelyn edessä estää luokan perimisen muihin luokkiin sealed -avainsanalla luokan voivat periä ainoastaan samassa lähdekooditiedostossa määritellyt luokat ja piirteet

Perintä ja näkyvyys private -määre rajoittaa näkyvyyden saman luokan olioihin public -määre tarjoaa täyden näkyvyyden protected sijoittuu em. ”puoliväliin” eli näkyy samaan luokkaan ja kyseisen luokan aliluokkiin Pakettinäkyvyys: ilmaistaan jättämällä näkyvyysmääre kirjoittamatta, jolloin näkyy samaan pakettiin, mutta ei välitä perintäsuhteista

Perinnän etuja Koodia tarvitsee kirjoittaa vähemmän Muutokset yläluokan koodin päivittyvät myös alaluokkiin Olioita voidaan käyttää tarvittaessa käsitellä luokasta riippumatta ”yliluokan tasolla”

Perinnän ongelmia Jos yliluokan toimintaa joutuu muuttamaan olennaisesti, kaikki aliluokat pitää käydä läpi ja tarkistaa Yliluokkien toimintoja suunnitellessa pitää olla varovainen, jos aliluokkia on paljon Usein käytännössä tulee paljon ”tyhmiä” metodeja, jotka vain välittävät viestejä eteenpäin toiselle oliolle tai rajapinnalle