Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

5. Kapselointi 5.1. 5.2 Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.

Samankaltaiset esitykset


Esitys aiheesta: "5. Kapselointi 5.1. 5.2 Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi."— Esityksen transkriptio:

1 5. Kapselointi 5.1

2 5.2 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ä.

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

4 5.4 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ä

5 5.5 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.

6 5.6 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()); }

7 5.7 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

8 5.8 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 -kurssin luentomateriaalin 12. luku.


Lataa ppt "5. Kapselointi 5.1. 5.2 Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi."

Samankaltaiset esitykset


Iklan oleh Google