2.1 2. Olio-ohjelmoinista lyhyesti. 2.2 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen.

Slides:



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

18. Abstraktit tietotyypit
Koostumussuhde Jukka Juslin © Jukka Juslin.
6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
16. Javan omat luokat.
Ict1td002: Ohjelmointitaito Kertaus Osio 2 - luokat - ilmentymät - viittaus- ja arvomuuttuja - ilmentymien taulukointi HAAGA-HELIA IltaTiko.
2. Olio-ohjelmoinnin perusteita
Taulukoiden määrittely, käsittely ja kopiointi Vaihtoehdot taulukoille
22. Taulukot.
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.
16. Lohkot Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat.
9. Periytyminen Javassa.
Dynaamiset oliottMyn1 Dynaamiset oliot Dynaamisen olion tunnuksen esittely ja olion määrittely voivat tapahtua yhtäaikaisesti tai eri aikaan. Dynaamisen.
© Jukka Harju, 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ä.
7. Oliot ja viitteet.
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.
19. Olio-ohjelmointia Javalla
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.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
22. Taulukot.
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.
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.
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.
15. Ohjelmoinnin tekniikkaa
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.
5. Kapselointi.
6. Metodit.
3. Olio-ohjelmoinista lyhyesti
1. Omat operaatiot.
7. Oliot ja viitteet.
13. Pakkaukset.
Poikkeustenkäsittelylohkot try-catch
2. Taulukot.
1. Olio-ohjelmointi.
17. Javan omat luokat.
8. Näppäimistöltä lukeminen
7. Hyvä ohjelmointitapa..
15. Ohjelmoinnin tekniikkaa
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
15. Lohkot.
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Luokan määrittely class-määreellä
7. Näytölle tulostaminen
8. Näppäimistöltä lukeminen
2. Taulukot.
15. Lohkot.
6. Metodit.
7. Oliot ja viitteet.
4. Attribuutit.
15. Ohjelmoinnin tekniikkaa
7. Hyvä ohjelmointitapa..
TIETO JA TIETOKONEOHJELMA
3. Attribuutit.
12. Monimuotoisuus.
8. Periytyminen.
4. Luokan testaus ja käyttö olion kautta
2. Olio-ohjelmoinnin perusteita
eli oliotiedostojen käsittely
Esityksen transkriptio:

Olio-ohjelmoinista lyhyesti

2.2 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen.

2.3 Yleistä Olio-ohjelmointia käsitellään hyvin yleisellä tasolla: − Tarkastellaan vain yhtä omaa luokkaa. − Olio-ohjelmoinnissa keskeiset attribuutit käsitellään lyhyesti. − Keskitytään operaatioihin. Aihepiiriin palataan tarkemmin kolmannessa periodissa järjestettävällä Olio-ohjelmoinnin perusteet (Oope, 10 op) -kurssilla.

2.4 Oliot ja luokat Oliot (object) ja luokat (class) ovat keskeisiä olio- ohjelmoinnin käsitteitä. Olio-ohjelmointi on ohjelmointiparadigma, jossa − ohjelma kuvataan keskenään kommunikoivina olioina, − oliot ajatellaan luokkansa ilmentymiksi (instance) ja − luokille voidaan määritellä periytymissuhteita. Oliot ja luokat liittyvät siis kiinteästi toisiinsa, mutta ovat kuitenkin eri asia!

2.5 Oliot ja luokat Olio-ohjelmoinnissa ohjelman käyttökohteen (ja sen ympäristön) eli sovellusalueen käsitteet (concept) pyritään mallintamaan formaalisti luokkien avulla. Luokka vastaa useimmiten sovellusalueen käsitettä hyvin karkealla tasolla. Luokkia ei voida yleensä määritellä suoraan, vaan ensin pitää analysoida sovellusalueen kohteita, joiden voidaan ajatella olevan käsitteiden ilmentyminä myös omanlaisiaan olioita.

2.6 Oliot ja luokat Luokkia rakennettaessa edetään siis usein yksityiskohdista yleiseen määrittelyyn. Luokkiin kootaan sovellusalueen olioille yhteisiä − tietoja (attribuutteja) ja − toiminnallisuutta (operaatioita eli metodeja). Oliolla on kaksi roolia: − Sovellusalueen käsitteen edustaja. − Käsitettä (karkeasti) vastaavan luokan edustaja.

2.7 Koira -luokka Teukka - kiltti - sekarotuinen - "Hau!" - metsästää rottia Viivi - aristokraattinen - villakoira - "vuh" - antaa tassua Hiski - rohkea - bullterrieri - "RÄYH!" - repii sohvaa Koira - luonne - rotu - haukkuu Oletetaan, että sovellusalueella on koiria. Mallinnetaan ensin luokaksi ja toteutetaan sitten Javalla.

2.8 Koira -luokka Kun luokan sisältö on selvillä, se voidaan toteuttaa: Esitellään attribuutit ja toteutetaan metodit. Ohessa hyvin alkeellinen Koira -luokan toteutus Java-kielellä. public class Koira { // Attribuutit. private int luonne; private String rotu; // Metodit. public void hauku(String s) { System.out.println(s); }

2.9 Attribuutit Luokan lohkossa esiteltyjä muuttujia tai vakioita. Esitellään lähes samalla tavoin kuin “tavalliset” muuttujat tai vakiot. Lisänä määreet. Pyritään yleensä kätkemään luokan ympäristöltä private -määreellä. Luetaan ja muutetaan aksessorimetodeilla. Käytettävä varoen: näkyvät kaikkiin metodeihin ja rikkovat siten modulaarisuusperiaatetta. (Vakioituja attribuutteja voi käyttää vapaammin.) public class Koira { // Attribuutit. private int luonne; private String rotu; // Aksessorit. public int luonne() { return luonne; } // Metodit. public void hauku(String s) { System.out.println(s); }

2.10 Olioiden esittely ja alustus Javan oliot eivät ole oliotyyppiä vaan viitetyyppisiä (tarkemmin luokkatyyppisiä) muuttujia. Luokkatyyppisiä muuttujia ei voi yleensä ottaen käsitellä kuten alkeistietotyyppisiä muuttujia. Viite “osoittaa” jonkin muistipaikan kautta varsinaiseen dataan keskusmuistissa. Tästä syystä luokkatyyppisen muuttujan esittely varaa muistia vain viitteen tallentamiseen, ei olion tietojen tallentamiseen.

2.11 Olioiden esittely ja alustus Olion tarvitsema muistitilavaraus tehdään alustuksen yhteydessä new -operaatiolla, joka palauttaa viitteen ja varaa keskusmuistista muistialueen olion tiedoille. Yleisesti: LuokanNimi olionNimi; olionNimi = new LuokanNimi(); tai LuokanNimi olionNimi = new LuokanNimi();

2.12 Olion luominen Koira teukka = null ; teukka = new Koira(); teukka null Lauseke new Koira(); luo olion ja palauttaa paluu- arvona olioon liittyvän tunnuksettoman viitteen. olio Sijoituksen seurauksena teukka -viite viittaa samaan olioon kuin paluuarvona saatu viite. teukka olio Olion viitteen esittely ja alustaminen tyhjäksi.

2.13 Rakentajat Attribuuttien arvot alustetaan luokan rakentajassa (constructor), jonka nimi on aina sama kuin luokan nimi. Rakentajalla ei ole tyyppiä. Kutsu yleisesti: - Oletusrakentaja LuokanNimi(); tai - Parametrillinen rakentaja LuokanNimi(parametrit); Rakentajaa kutsutaan aina, kun luodaan olio. Esimerkiksi: Koira hiski = new Koira();

2.14 Rakentajat Java luo automaattisesti tyhjän oletusrakentajan. Itse kirjoitetulle luokalle voidaan luonnollisesti kirjoittaa myös rakentaja. Entä jos on tarvetta sekä parametrittomalle oletusrakentajalle että parametriselle rakentajalle? Javassa on kuormittamisena (overloading) tunnettu mekanismi, joka sallii samannimisten metodien esittelyn ja siten myös samannimisen rakentajien esittelyn.

2.15 Olion operaation kutsuminen Olion luokan julkisia operaatioita voidaan kutsua olion luokan ulkopuolelta muuttujan nimen ja pistenotaation avulla. Esimerkiksi:Koira hiski = new Koira(); hiski.hauku(″RÄYH!″); Esimerkiksi:String syote = In.readString(); int merkkienLkm = syote.length(); Esimerkiksi:Scanner lukija = new Scanner(System.in); String syote = lukija.nextLine(); Esimerkiksi:Random generaattori = new Random(); int arvottu = generaattori.nextInt(10);