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

Slides:



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

– Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä.
Koostumussuhde Jukka Juslin © Jukka Juslin.
@ Leena Lahtinen Helia TIETO JA TIETOKONEOHJELMA  TIETOKONEOHJELMA KÄSITTELEE TIETOJA  TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA.
Luokkien väliset koostesuhteet
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.
Tietojärjestelmät ja Systeemisuunnittelu
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
Taulukot Jukka Juslin © Jukka Juslin 2006.
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.
Olio-mallinnus Tietojärjestelmien suunnittelu KYAMK, Liiketalous, Kouvola Jarkko Ansamäki, 2002.
13. Pakkaukset.
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  PÄIVÄOPISKELIJAT: – KAKSI LUOKAA (SUOMI) –YKSI LUOKKA (ENGLANTI)
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
UML-luokkakaaviot.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
TIETO JA TIETOKONEOHJELMA TIETOKONEOHJELMA KÄSITTELEE TIETOJA TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA MENETELMILLÄ.
Virtuaaliset jäsenfunktiot tMyn1 Virtuaaliset jäsenfunktiot Virtuaalinen jäsenfunktio on esiteltävä monimuotoisessa kantaluokassa. Virtuaalisen jäsenfunktion.
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Käsitteen didaktiikkaa
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.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  AVOIMEN OPISKELIJAT: – YKSI LUOKA (SUOMI) – LUOKKA ICT02O-1.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Komponenttipohjainen ohjelmistotekniikka (TJTSS56) Osa 4 Kevätlukukausi 2010 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Markku Sakkinen.
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
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.
Oliot ja luokat Oliot ja luokat Oliot (object) ja luokat (class) ovat keskeisiä olio- ohjelmoinnin käsitteitä. Olio-ohjelmointi on ohjelmointiparadigma,
Vesa Ollikainen & Outi Grotenfelt
Poikkeustenkäsittely- lohkot tMyn1 Poikkeustenkäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw.
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
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.
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ö.
11. Rajapinnat.
Poikkeustenkäsittelylohkot try-catch
Kantaluokan määrittely
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
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ä
Aakkosnumeerinen tieto
Muutamia käsitteitä Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan, perusluokan (superclass,
14. Hyvä ohjelmointitapa.
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
8. Periytyminen.
OHJELMOINTITAITO ICT02D 12 ECTS.
TIETO JA TIETOKONEOHJELMA
OHJELMOINTITAITO ICT02D 12 ECTS.
8. Periytyminen.
4. Luokan testaus ja käyttö olion kautta
2. Olio-ohjelmoinnin perusteita
OHJELMOINTITAITO ICT02D 12 ECTS.
Esityksen transkriptio:

Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis 100%:sti abstrakti luokka: rajapintaluokassa ei ole yhdellekään metodille toteutusta. Rajapintaluokkaan ei luonnollisestikaan voi luoda olioita. Käytössä ovat varatut sanat interface ja implements: Rajapintaluokat tMyn

Rajapintaluokat tMyn

Rajapintaluokat tMyn

Rajapintaluokat tMyn

Luokka voi toteuttaa useammankin rajapinnan Luokka voi toteuttaa useammankin rajapinnan. Sellaisessa tapauksessa otsikkorivillä luetellaan rajapintojen nimet pilkuilla eroteltuina. Jos luokka toteuttaa rajapinnan, niin silloin kyseisessä luokassa tulee olla jokaiselle rajapinnan metodille toteutus: Rajapintaluokat tMyn

Rajapintaluokat tMyn

Rajapintaluokat tMyn

Rajapintaluokat tMyn

Tilanteen voi kiertää antamalla tyhjän rungon: Rajapintaluokat tMyn

Rajapintaluokat tMyn

Rajapintaluokat tMyn

Rajapintaluokat tMyn

Rajapintaluokka siis omalla tavallaan antaa yhteisen rakenteen niille luokille, jotka toteuttavat kyseisen rajapintaluokan. Rajapintaluokka ei ole sama asia kuin moniperintä. PHP ei tue moniperintää. Rajapintaluokan toteuttava luokka (yksittäinen luokka siis saattaa toteuttaa useammankin rajapinnan) saa rajapintaluokalta ainoastaan metodien esittelyt, ei yhdenkään toteutusta. Tyypillisesti ohjelmointiprojektissa on monia ohjelmoijia – tällöin rajapintaluokka on yksi toimiva tapa määritellä ylemmän tason toiminnallisuutta. Rajapintaluokat tMyn

Ovatko rajapintaluokat vaihtoehtoja abstrakteille luokille? Ohjelmoinnin aikana voi käydä ilmi, että johonkin luokkaan ei koskaan luoda olioita. Sellainen luokka on hyvä kandidaatti rajapintaluokaksi! Toinen esimerkki: sinulla on jonkin sortin tajua siitä millaisia metodeita luokalla tulisi olla, mutta yksityiskohdat eivät vielä ole tiedossa. Ovatko rajapintaluokat vaihtoehtoja abstrakteille luokille? Ero voisi olla vaikkapa tällainen: rajapintaluokan voi toteuttaa kaksi (tai miten monta tahansa) luokkaa, jotka eivät ole millään muotoa looginen osa tuota rajapintaluokkaa. Rajapintaluokat tMyn

Seuraavassa esimerkissä on kaksi toisiinsa loogisesti riippumatonta luokkaa: Lemmikki ja Koti. Kummatkin luokat toteuttavat rajapintaluokan vakuutuskelpoinen. Abstraktista kantaluokasta Elain periytetään johdettu luokka Lemmikki: Rajapintaluokat tMyn

Rajapintaluokat tMyn

Rajapintaluokat tMyn

Rajapintaluokat tMyn

Rajapintaluokat tMyn

Rajapintaluokat tMyn

UML-kaavio voisi näyttää kuvan 1 mukaiselta. Yleistys (generalization) tai perintä (inheritance) kuvataan yhtenäisellä viivalla luokkien välillä, jonka kantaluokan puoleisessa päässä on ontto kolmio. Luokkien Elain ja Lemmikki välinen suhde on yleistys. Toteutus (realization) kuvataan katkoviivalla luokkien välillä, jonka rajapintaluokan puoleisessa päässä on ontto kolmio. Luokkien vakuutuskelpoinen ja Lemmikki sekä luokkien vakuutuskelpoinen ja Koti välinen suhde on toteutus. Rajapintaluokat tMyn

Kuva 1. UML-luokkakaavio rajapintaluokan esimerkistä. Elain {abstract} <<interface>> vakuutuskelpoinen #ika:int <<constructor>> +__construct(ika) +KenenOmistuksessa():string {abstract} +HaeIka():int +HaeArvoTieto():string Lemmikki Koti -nimi:string <<constructor>> +__construct(ika, nimi) +HaeNimi():string +KenenOmistuksessa():string +HaeArvoTieto():string +HaeArvoTieto():string Kuva 1. UML-luokkakaavio rajapintaluokan esimerkistä. Rajapintaluokat tMyn