5. Kapselointi.

Slides:



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

6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
Luokan otsikko- ja toteutustiedosto tMyn1 Luokan otsikko- ja toteutustiedosto •Tähän asti ohjelmaesimerkit on toteutettu siten, että kaikki koodi on yhdessä.
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
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
13. Pakkaukset.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Toistolauseet
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.
Yksinkertaiset graafiset syöttö- ja tulostustoiminnot.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
9. Periytyminen Javassa.
Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.
13. Hyvä ohjelmointitapa (osa 1)
© Jukka Harju, Jukka Juslin
7. Oliot ja viitteet.
String-vertailusta ja Scannerin käytöstä (1/2)
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.
19. Olio-ohjelmointia Javalla
1 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla.
HelloWorld-ohjelma. 5.2 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi.
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.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Näppäimistöltä lukeminen Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In -luokka.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.
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.
Vesa Ollikainen & Outi Grotenfelt
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.
Javan oliovirrat eli oliotiedostojen käsittely. Olio- eli objektitiedostojen käsittely Käsittely täysin samanlaista kuin muiden tiedostojen 1.Otetaan.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
Sähköpostin lähetys Java- ohjelmasta Jukka Juslin.
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
15. Ohjelmoinnin tekniikkaa
Tiedostot. 8.2 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen.
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.
String-vertailusta ja Scannerin käytöstä (1/2)
17. Kooste.
6. Metodit.
3. Olio-ohjelmoinista lyhyesti
1. Omat operaatiot.
7. Oliot ja viitteet.
13. Pakkaukset.
11. Rajapinnat.
1. Olio-ohjelmointi.
8. Näppäimistöltä lukeminen
4. Komentoriviparametrit
15. Ohjelmoinnin tekniikkaa
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
5. HelloWorld-ohjelma.
8. Näppäimistöltä lukeminen
14. Hyvä ohjelmointitapa.
6. Metodit.
7. Oliot ja viitteet.
3. Komentoriviparametrit
13. Pakkaukset.
16. Javan omat luokat.
4. Attribuutit.
5. HelloWorld-ohjelma.
3. Attribuutit.
13. Pakkaukset.
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Esityksen transkriptio:

5. Kapselointi

Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi piirteitä piilottamalla. Attribuutit piilotetaan private-määreen ja aksessoreiden avulla. (Tiedonkätkentä on siis osa kapselointia.) Metodeja piilotetaan private-määrettä käyttäen. Piilotettavia ovat esimerkiksi metodit, joita tarvitaan vain luokan sisällä.

Liittymä Julkiset metodit muodostavat liittymän, jonka kautta luokkaa käytetään kontrolloidusti ohjelmoijan ajattelemalla tavalla. Kapseloitujen luokkien kommunikointi: kätketyt osat liittymät

Kissa-luokka (Kissa.java) public class Kissa { // Attribuutit. private String vari; private String hanta; // Metodit private void hairikoi() { // Tavaroita hajoaa... } public String vari() { return vari; } public void vari(String v) { if (v != null) vari = v; } public String hanta() { return hanta; } public void hanta(String h) { if (h != null) hanta = h; } public void aantele(String s) { System.out.println(s); } Luokan kätketty osa Luokan liittymä

Luokalle oma tiedosto Ohjelma on toistaiseksi ajateltu yhdeksi luokaksi. Näin lähdekooditiedostojakin on ollut vain yksi. Siirrytään nyt tyypilliseen käytäntöön, jossa jokaisen luokan koodi erotetaan omaan tiedostoonsa. Näin toimien kukin luokka on selkeämmin täysin oma kokonaisuutensa myös tiedostojen tasolla. main-metodin sisältävää luokkaa kutsutaan ajoluokaksi. Käytetään tällä kurssilla usein toisen luokan testaamiseen. Esim. Kissa-luokkaa testataan KissaTesti-luokassa.

KissaTesti-luokka (KissaTesti.java) public class KissaTesti { public static void main(String[] args) { // Luodaan kissa. Kissa rontti = new Kissa(); // Testataan metodeja. rontti.aantele("Miau!"); rontti.vari("musta"); rontti.hanta("tavallinen"); System.out.println(rontti.vari()); System.out.println(rontti.hanta()); }

Testiluokan kääntäminen ja ajaminen Testiluokka on käännettävä yhdessä testattavan luokan kanssa. Tämä on tehtävissä eri tavoin. Kun molempien luokkien lähdekooditiedostot sijoitetaan samaan hakemistoon, kääntäjälle tarvitsee antaa vain testiluokan sisältävän tiedoston nimi. Esimerkki: javac KissaTesti.java Ohjelma ajetaan testiluokan nimellä. Esimerkki: java KissaTesti

Testiluokan kääntäminen ja ajaminen Luokan voi myös sisällyttää testiluokan käännökseen jostakin muusta hakemistosta joko polkumäärittelyllä tai javac-ohjelman sourcepath-parametrillä. Näin käännetty ohjelma suoritetaan siten, että java-ohjelmalle kerrotaan classpath-parametrin avulla tavukoodin hakemisto. Ajaminen ja käännös tehdään siis kuten In-luokan yhteydessä. Kertaa tarvittaessa Lausekielinen ohjelmointi I -kurssin luentomateriaalin 8. luku.