Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuElsa Parviainen Muutettu yli 9 vuotta sitten
1
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op
2
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java) Tavoite Opiskelija ymmärtää olio-ohjelmoinnin problematiikan. Opiskelija osaa määritellä ja käyttää itse ohjelmoimiaan luokkia omissa ohjelmissaan käyttäen hyväksi luokkien ja olioiden välisiä suhteita (periytyminen, assosiaatio, koostuminen). Opiskelija tutustuu Java API:iin käyttöliittymäohjelmoinnin kannalta (Swing) ja osaa toteuttaa graafisia käyttöliittymiä. Lisäksi opiskelija osaa käyttää tietovirtoja (tiedostoja). Opiskelija tuntee Java API:n tarjoamat yleisimmät perustietorakenteet ja osaa käyttää niitä. Sisältö Oliopohjaisuus. Poikkeukset ja tietovirrat. Tietorakenteet. Graafinen käyttöliittymä. 27.8.20122(c) Outi Grotenfelt/Vesa Ollikainen
3
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java), Arviointikriteerit Tyydyttävä Oliopohjaisuus: - Opiskelija osaa määrittää luokkia, joissa on instanssimuuttujia, asetus- ja saantimetodeja ja muita metodeja. Opiskelija osaa tehdä niistä olioita ja muuttaa olioiden tilaa. - Opiskelija osaa määrittää luokkien välisen assosiaatiosuhteen. - Opiskelija osaa määrittää aliluokan. - Opiskelija osaa määrittää rajapinnan ja sen toteuttavan luokan. Poikkeukset ja tietovirrat: - Opiskelija osaa toteuttaa try/catch-rakenteen. - Opiskelija ymmärtää tietovirran käsitteen. Tietorakenteet: - Opiskelija osaa käyttää ArrayList-tietorakennetta. Graafinen käyttöliittymä: - Opiskelija osaa toteuttaa MVC-mallin mukaisen ohjelman, jossa on graafinen käyttöliittymä. - Opiskelija osaa liittää käyttöliittymään selitteitä, tekstikenttiä ja painikkeita. - Opiskelija osaa toteuttaa painikkeen kuuntelijan. 27.8.20123(c) Outi Grotenfelt/Vesa Ollikainen
4
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java), Arviointikriteerit Hyvä Oliopohjaisuus: - Opiskelija osaa suunnitella ja toteuttaa muutamasta luokasta koostuvan luokkarakenteen, jossa sovelletaan assosiaatio- ja periytymissuhteita. - Opiskelija tunnistaa löyhän ja aidon koosteen sekä osaa toteuttaa ne instanssimuuttujien avulla. - Opiskelija osaa käyttää oliopohjaisessa ohjelmassa staattisia metodeja ja muuttujia. - Opiskelija osaa määrittää abstrakteja luokkia ja metodeita sekä niiden vaatimia aliluokkia. Poikkeukset ja tietovirrat: - Opiskelija osaa kirjoittaa try/catch-rakenteeseen eri poikkeuksille eri tavoin toimivia poikkeuskäsittelijöitä. - Opiskelija osaa määrittää tiedostojen käsittelemiseksi tarvittavat tietovirrat ja kirjoittaa niiden vaatimat poikkeuskäsittelijät. Opiskelija osaa lukea ja tallentaa olioita tietovirtojen avulla. Tietorakenteet: - Opiskelija tuntee List-rajapinnan ja osaa käyttää ArrayList- ja Vector-tietorakenteita tarkoituksenmukaisissa tilanteissa. - Opiskelija osaa käyttää kääreluokkia. Graafinen käyttöliittymä: - Opiskelija osaa käyttää säiliöitä ja sijoittelijoita graafisen käyttöliittymän toteuttamisessa. - Opiskelija osaa käyttää luettelo- ja yhdistelmäruutuja sekä valintaruutuja ja - painikkeita. - Opiskelija osaa hyödyntää Javan ohjelmointirajapinnan kuvausta käyttöliittymän toteutuksessa. 27.8.20124(c) Outi Grotenfelt/Vesa Ollikainen
5
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java), Arviointikriteerit Kiitettävä Oliopohjaisuus: - Opiskelija hallitsee määreiden käytön luokkien, metodien ja muuttujien yhteydessä. - Opiskelija osaa käyttää nimettyjä ja anonyymejä sisäluokkia. Poikkeukset ja tietovirrat: - Opiskelija osaa käyttää merkkipohjaisia tietovirtoja ja jäsentää luetun syöterivin. Tietorakenteet: - Opiskelija osaa käyttää Javan ohjelmointirajapintaan kuuluvia tietorakenteita dokumentaatiota hyödyntäen. Graafinen käyttöliittymä: - Opiskelija osaa toteuttaa valikon. - Opiskelija osaa toteuttaa kuuntelijoita hiiri- ja näppäimistötapahtumille sekä valikkotoiminnoille. 27.8.20125(c) Outi Grotenfelt/Vesa Ollikainen
6
1. Luokka ja olio Inhimillinen tapa havainnoida maailmaa Asioiden ja tilanteiden ryhmittelyä Ohjelmoinnissa vain keskeisin olioihin, kaikki turha pois Oliokieliä: Java, Smalltalk, Eiffel Olio-ohjelmointi mahdollista: C++, Oberon Olio – eroaa kaikista muista jollakin tavalla; attribuutit (= tiedot, ominaisuudet) ja metodit (toiminnallisuus) Voivat olla suhteissa toisiin olioihin Outi Grotenfelt627.8.2012
7
1. Luokka ja olio.. Mikä on olio/luokka? Sillä on omat attribuutit (tiedot) ja metodit (toiminta) Mikäli on vain attribuutteja eikä toiminnallisuutta – ei olio/luokka Pelkkä toiminnallisuus, ei omia tietoja – ei olio/luokka (interface = rajapinta) Olio on luokan ilmentymä Luokka esittelee olioidensa tiedot ja toiminnallisuuden Outi Grotenfelt727.8.2012
8
1. Luokka ja olio.. Koira on luokka. Murre ja Reksi ovat luokan Koira ilmentymiä eli olioita. Luokan Koira ominaisuuksia voivat olla esimerkiksi nimi ja paino. Luokan koira metodina voi olla esimerkiksi hauku(). Outi Grotenfelt/Vesa Ollikainen827.8.2012 ”Murre ja Reksi ovat koiria.”
9
1. Luokka ja olio.. Luokan tiedot, attribuutit tulisi aina esitellä julkisuusmääreidensä kanssa Perussääntö: private: k aikki tietokentät (attribuutit) ovat yksityisiä, tällöin niiden arvoja ei voi muuttaa luokan ulkopuolelta public: k aikki toiminnot ovat julkisia, (esim set/get-metodit; ominaisuuksien muuttaminen toimii vaikka luokan sisältö muuttuisi) protected: näkyy luokan sisälle, aliluokkiin ja muihin saman pakkauksen luokkiin (oletus): näkyy luokan sisälle ja muihin saman pakkauksen luokkiin Outi Grotenfelt927.8.2012 Aliluokkiin ja pakkauksiin palataan myöhemmin.
10
1. Luokka ja olio.. Lisätään ominaisuuksille asetus- ja saantitoiminnot (setterit ja getterit), joilla ominaisuuksille voidaan asettaa arvot (muokataan olion ominaisuuksia). Outi Grotenfelt/Vesa Ollikainen1027.8.2012
11
1. Luokka ja olio.. Kaikilla luokilla on konstruktori, muodostin (vaikka et itse kirjoittaisikaan sellaista) Esitellessäsi yhden konstruktorin menetät automaattisesti luodun: jos kirjoitat yhden kirjoita kaikki, joita voit tarvita (kuormitus): Mikäli metodilla on eri määrä tai eri tyyppisiä parametreja, ne on kuormitettu (overloaded, sama nimi) Konstruktorin NIMEN täytyy olla SAMA kuin luokan nimi EI paluutyyppiä Voidaan kutsua VAIN, kun olio luodaan Javassa ei tarvita destruktoria (vrt C++): automaattinen roskien keruu! Outi Grotenfelt1127.8.2012
12
1.1 Olioiden luonti Toisessa luokassa Koiratesti luodaan luokan Koira olio new -operaattorilla. Tarkasti ottaen omaKoira on viittaus Koira - luokan olioon Outi Grotenfelt/Vesa Ollikainen1227.8.2012
13
1.2 Kapselointi Outi Grotenfelt/Vesa Ollikainen1327.8.2012
14
1.4 Esimerkki luokasta Luokka Koira määrittää luokan nimen sekä sen ominaisuudet ja metodit. plus- ja miinusmerkit kuvaavat suojaustasoja ( public / private ) esimerkki UML-luokkakaaviosta, joka on kuvaustekniikka oliosuunnitteluun. Kalvosarjan tekijän nimi14
15
1.5 Olion muodostaminen/alustaminen Luokan oliot voidaan muodostaa luokan määrittelyn yhteydessä Muodostaminen tehdään tarkoitukseen kirjoitetussa alustaja- eli konstruktorimetodissa. Konstruktorin nimen on oltava täsmälleen sama kuin luokan nimi Jokaisella metodilla on oletusarvoisesti tyhjä parametriton konstruktori, jos yhtään alustajaa ei ole erikseen luotu. Outi Grotenfelt/Vesa Ollikainen1527.8.2012
16
1.6 Konstruktorin kuormittaminen Alustajametodeja voidaan tehdä useita (metodin kuormittaminen) Pätee muihinkin metodeihin. esimerkissä parametrillinen ja parametriton alustaja. Outi Grotenfelt/Vesa Ollikainen1627.8.2012
17
1.7 Olion viittaus itseensä: this esimerkissä parametrimuuttujalla ja instanssimuuttujalla (olion ominaisuudella) on sama nimi avainsana this kertoo, että operaatio kohdistuu instanssimuuttujaan. Luokan alustajaa voidaan kutsua toisesta alustajasta operaatiolla this. Esimerkiksi this() kutsuu parametritonta alustajaa. Kalvosarjan tekijän nimi17
18
1.8 Olion tuhoutuminen Javassa on automaattinen roskienkeruu. Oliot, joihin ei viitata, tuhoutuvat automaattisesti. Olion tuhoutumistoimet voi määritellä luokkaan kirjoitettavalla finalize() -metodilla. harvoin tarvitaan. Roskienkeruun voi pakottaa metodikutsulla System.gc(); Kalvosarjan tekijän nimi18
19
1.9 JavaBeans ja metodien nimeäminen JavaBeans-komponenttiteknologia edellyttää luokalta tiettyjä ominaisuuksia: Luokalla on oltava julkinen parametriton konstruktori. Luokan ominaisuuksille määritetään get - ja set -alkuiset saanti- ja asetusmetodit. Luokan on oltava sarjallistuva (tila voidaan lukea ja kirjoittaa, toteuttaa Serializable -rajapinnan, tähän palataan myöhemmin). Teknologiaa käytetään mm. graafisissa käyttöliittymissä. Nimeämiskäytäntö mahdollistaa luokkien automatisoidun käsittelyn. Sitä on tarkoituksenmukaista toteuttaa myös muille luokille (getterien ja setterien nimeäminen). Vesa Ollikainen/Outi Grotenfelt1927.8.2012
20
www.metropolia.fi www.facebook.com/MetropoliaAMK outi.grotenfelt@metropolia.fi KIITOS!
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.