Vesa Ollikainen & Outi Grotenfelt

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, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 13 Monimuotoisuus.
16. Javan omat luokat.
© 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Java-perusteet Kari Kujansuu
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Outi Grotenfelt & Vesa Ollikainen
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
Taulukoiden määrittely, käsittely ja kopiointi Vaihtoehdot taulukoille
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.
13. Pakkaukset.
Graafinen käyttöliittymä, osa 2
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap.
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
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ä.
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
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.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Standardi- ja tietorakenneluokkia.
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.
Komponenttipohjainen ohjelmistotekniikka (TJTSS56) Osa 4 Kevätlukukausi 2010 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Markku Sakkinen.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely.
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,
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.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Graafinen käyttöliittymä, osa 1
Kantaluokan määrittely tMyn1 Kantaluokan määrittely Perinnän käyttöön liittyvät varatut sanat private, protected, public, final ja abstract. Ne tarkoittavat.
Javan oliovirrat eli oliotiedostojen käsittely. Olio- eli objektitiedostojen käsittely Käsittely täysin samanlaista kuin muiden tiedostojen 1.Otetaan.
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
16. Javan omat luokat Sisällys Johdanto. Object -luokka: − toString -, equals -, clone - ja getClass -metodit. Comparable -rajapinta: − compareTo.
Yksikkötestaus ● Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin.
15. Ohjelmoinnin tekniikkaa Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi.
5. Kapselointi.
Funktio-ohjelmointi ja Java
11. Rajapinnat.
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
6. Metodit.
13. Pakkaukset.
8. Periytyminen.
16. Javan omat luokat.
15. Ohjelmoinnin tekniikkaa
3. Attribuutit.
13. Pakkaukset.
8. Periytyminen.
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Esityksen transkriptio:

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

Vesa Ollikainen & Outi Grotenfelt Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi edullista, jos aliluokka voisi periä muuttujia ja metodeja useammalta yliluokalta. Rajapintojen avulla voidaan kiertää moniperinnän puute. Luokka perii yhden yliluokan. Luokka voi lisäksi toteuttaa yhden tai useampia rajapintoja. Toteutuksella tarkoitetaan, että rajapinnan määrittämät metodit kirjoitetaan rajapinnan toteuttavassa luokassa. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Vesa Ollikainen & Outi Grotenfelt Rajapinnat Käsitteellisesti rajapinta muistuttaa abstraktia luokkaa, jonka kaikki metodit ovat abstrakteja. Rajapinnat ovat kuitenkin luokkahierarkian ulkopuolella. Rajapinnat ovat koodin modularisuutta edistävä työväline. Rajapinnan toteutus takaa, että määrätyt metodit ovat käytössä kaikissa sen toteuttavissa luokissa. Rajapintojen käyttö vähentää toteutukseen tehtävien muutoksen säteilyä toteuttavan luokan ulkopuolelle. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Rajapinta luokkakaaviossa Luokkakaaviossa luokan ja sen toteuttaman rajapinnan suhde ilmaistaan katkoviivanuolella. Kuvan esimerkki sallii myös laulamattomien lintujen toteutuksen. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Esimerkki rajapinnan määrittelystä Rajapinta Laulava määrää, että kaikissa sen toteuttavissa luokissa on toteutettava metodi laula(). Rajapinta määritetään avainsanalla interface. Kunkin metodin määreinä on public abstract. Määreet ovat voimassa vaikkei niitä kirjoittaisi. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Esimerkki rajapinnan määrittelystä.. Talitiainen- ja Varis-luokat ovat Lintu-luokan aliluokkia. Aliluokat toteuttavat Laulava-rajapinnan. toteutus ilmaistaan implements-avainsanalla jos toteutettavia rajapintoja on useita, ne erotetaan pilkuin. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Esimerkki rajapinnan määrittelystä.. Myös Iskelmätähti-luokka toteuttaa Laulava- rajapinnan. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Esimerkki rajapinnan määrittelystä.. Yllä laulavat-taulukko sisältää viittauksia rajapintoihin. Linnuille on määritetty muni()-metodi. Tarvitaan tyypinmuunnos alaspäin. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Muuttujat rajapinnoissa Rajapintoihin voi määrittää myös muuttujia. Muuttujien määreinä on aina public static final. Nämäkin määreet ovat voimassa ilman kirjoittamista. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Rajapintojen toteutus ja perintä Rajapinnat voivat periä toisia rajapintoja. periytyminen kuvataan extends-avainsanalla kuten luokkien tapauksessa. Rajapinta voi samanaikaisesti periä monta rajapintaa. extends-avainsanan perässä määritettävät perittävät rajapinnat erotetaan pilkuilla. public interface Kissa extends Nisäkäs, Kotieläin { int elämät = 7; void kehrää(); //… } Huomaa, että muuttuja elämät on automaattisesti static ja final. Metodi kehrää on automaattisesti public ja abstract. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Rajapinnat ja tehdasluokka Rajapinnan toteuttavien olioiden luonti voidaan piilottaa tehdasluokkiin. Esimerkissä tehdasluokka luo Laulava-rajapinnan toteuttavia olioita. Vuoron perään Talitiainen- ja Varis-olioita. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Rajapinnat ja tehdasluokka.. Testiluokka ei missään vaiheessa tiedä, mitä rajapinnan toteuttajia on olemassa. Tämä on eristetty tehdasluokkaan. Uuden linnun lisäys ei aiheuttaisi muutoksia testiluokkaan.. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Vesa Ollikainen & Outi Grotenfelt Sisäluokat Sisäluokka on toisen luokan sisällä määritelty luokka. Vain ulkoluokasta (luokasta, jonka sisällä sisäluokka on), pääsee käsiksi sisäluokkaan. Ulkoluokassa on tehtävä ilmentymä sisäluokan oliosta. Sisäluokasta pääsee käsiksi ulkoluokan muuttujiin ja metodeihin. Koskee myös private-määreellä suojattuja. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Vesa Ollikainen & Outi Grotenfelt Esimerkki Tarkastellaan esimerkkinä noppapelin toteutusta: Pelaajat heittävät vuoron perään noppaa. Se voittaa, joka saavuttaa ensimmäisenä sovitun pisterajan. Jos useampi pelaaja saavuttaa pisterajan samalla kierroksella, heistä ensimmäisenä heittänyt voittaa pelin. Määritetään Pelaaja-luokalle nyt sisäluokka Pistelaskuri. Sisäluokka pitää sisällään pelaajan pistemäärän ja siihen liittyvät metodit (mm. nopanheitolla kasvatuksen). Ulkoluokka hyödyntää sisäluokan palveluja. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Vesa Ollikainen & Outi Grotenfelt Esimerkki.. Pistelaskuri on sisäluokka. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Vesa Ollikainen & Outi Grotenfelt Esimerkki.. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Vesa Ollikainen & Outi Grotenfelt Esimerkki.. 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Vesa Ollikainen & Outi Grotenfelt Anonyymi sisäluokka Anonyymi sisäluokka on nimetön rajapinnan toteuttava luokka, joka sijaitsee toisen luokan sisällä. Toteutus annetaan samalla, kun olio luodaan new-avainsanalla. Anonyymiä sisäluokkaa käytetään yleisesti tapahtumakäsittelyn ohjelmointiin. esimerkiksi koodi, joka suoritetaan, kun käyttöliittymäobjektille tehdään jotain (kuten painetaan painiketta). 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

Anonyymi sisäluokka, esimerkki Anonyymi sisäluokka määrittää Laulava- rajapinnan toteutuksen 17.9.2012 Vesa Ollikainen & Outi Grotenfelt

KIITOS! www.metropolia.fi www.facebook.com/MetropoliaAMK Outi.grotenfelt@metropolia.fi