Harjoitustyö.

Slides:



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

18. Abstraktit tietotyypit
Osion kaksi kertaus Jukka Juslin © Jukka Juslin.
6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
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
Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
13. Pakkaukset.
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.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
13. Hyvä ohjelmointitapa (osa 1)
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
7. Oliot ja viitteet.
Map-luokka Mikä Map on? Mapin esittely ja luonti Map-luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen 1.
String-vertailusta ja Scannerin käytöstä (1/2)
20. Javan omat luokat.
HelloWorld-ohjelma. 5.2 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi.
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.
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.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
Harjoitustyö 1. Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala2 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva.
Aakkosnumeerinen tieto Tarkoittaa kaikkea muuta tietoa paitsi laskentaan tarkoitettuja lukuja Muuttujan tietosisältö on siis tekstitietoa Muuttujan tietotyypiksi.
Tiedostojen käsittely
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.
14. Poikkeukset Sisällys Johdanto poikkeuksiin. Poikkeusten käsittely: − Poikkeusten käsittely paikallisesti. − Poikkeusten heittäminen. Exception.
Tentti. Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala2 Tentti Torstaina klo 16–20 D10ab (Päätalo). Pääasiassa Java-ohjelmien kirjoittamista.
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
15. Ohjelmoinnin tekniikkaa
Monadit TIES341 Funktio-ohjelmointi 2 Kevät 2006.
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö.
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö.
String-vertailusta ja Scannerin käytöstä (1/2)
17. Kooste.
5. Kapselointi.
Tentti.
18. Testaus.
13. Pakkaukset.
11. Rajapinnat.
8. Näppäimistöltä lukeminen
4. Komentoriviparametrit
7. Hyvä ohjelmointitapa..
Toinen harjoitustyö ASCII-grafiikkaa.
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
5. HelloWorld-ohjelma.
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö
Aakkosnumeerinen tieto
14. Hyvä ohjelmointitapa.
3. Komentoriviparametrit
13. Pakkaukset.
8. Periytyminen.
Harjoitustyö.
4. Attribuutit.
Tentti.
5. HelloWorld-ohjelma.
3. Attribuutit.
13. Pakkaukset.
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Esityksen transkriptio:

Harjoitustyö

Harjoitustyö Työ tehdään pääosin itse. Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ tehdään pääosin itse. Ideoita voi vaihtaa – koodia ei. Henkilökohtaista ohjausta mikroluokissa. Ohjaajilta voi kysyä sähköpostilla. Palautus WETO-järjestelmään noin kahden kuukauden kuluttua. Testaus automaattisesti julkisilla ja salaisilla testeillä. Palautustakarajaksi on vahvistunut perjantai 21.4. 28.4. Olio-ohjelmoinnin perusteet | Kevät 2017 | Jorma Laurikkala

Harjoitustyö Perjantaina 24.3. on välipalautuspiste, johon mennessä täytyy palauttaa WETOon harjoitustyön Javalla toteutettu luokkahierarkia ja suunnitelma työn rakenteesta (luokat, rajapinnat ja näiden väliset suhteet) UML-luokkakaaviona. WETO auttaa opettajaa tarkistamalla koodia automaattisesti. Tarkka tehtävänanto julki tällä viikolla. Varaa työlle aikaa, aloita ajoissa ja tee työtä säännöllisesti. Olio-ohjelmoinnin perusteet | Kevät 2017 | Jorma Laurikkala

Komentoikkuna Komentoikkunassa vuoro- vaikutetaan käyttö-järjestelmän kanssa tekstuaalisesti komentoja kirjoittamalla. Moni komento liittyy tiedostojärjestelmään. Esimerkiksi cd-komennolla voidaan vaihtaa hakemistoa. Tiedostojärjestelmä on organisoitu hakemistopuuksi. Hakemisto (kansio) voi sisältää tiedostoja ja muita hakemistoja. / pics temp memo_backup.txt cats ceiling_cat.gif dangerous_kitten.jpg dogs worlds_ugliest_dog.jpg Olio-ohjelmoinnin perusteet | Kevät 2017 | Jorma Laurikkala

Luokista Tiedostojärjestelmän sisältöä mallinnetaan konkreettisilla Tiedosto- ja Hakemisto-luokilla. Tiedostolle on ominaista sen koko tavuina (int, ≥ 0). Hakemistolla on lista, josta on viitteet hakemiston sisältämiin tiedostoihin ja muihin hakemistoihin. Lisäksi hakemistosta on viite ylihakemistoon. (Juurihakemiston ylihakemistoviite on null-arvoinen.) Keskinäisillä viitteillä yhdistetyt oliot muodostavat hakemistopuun. Puussa voidaan liikkua ylös ja alas viitteitä seuraamalla. Edellisen kalvon hakemistopuu viitteiden yhdistäminä olioina. Soikot ovat hakemisto-olioita ja suorakaiteet tiedosto-olioita. null / pics temp cats dogs memo_backup.txt ceiling_cat.gif worlds_ugliest_dog.jpg dangerous_kitten.jpg Olio-ohjelmoinnin perusteet | Kevät 2017 | Jorma Laurikkala

Luokista Tee Tiedosto- ja Hakemisto-aliluokille abstrakti Tieto-yliluokka, jossa on yhteinen tieto eli nimi (StringBuilder). Kapseloi luokat ja korvaa luokissa toString-metodi ketjuttaen. Korvaa yliluokassa equals-metodi ja toteuta siinä Comparable-rajapinta. Vertailu tapahtuu String-luokan metodeilla. Tee kopiorakentajat Tiedosto- ja Tieto-luokille. Nimi syväkopioidaan. Hakemisto-luokan on toteutettava opettajan antama rajapinta. Sijoita luokkahierarkia tiedot-nimiseen pakkaukseen. Olio-ohjelmoinnin perusteet | Kevät 2017 | Jorma Laurikkala

Luokista Peri LinkitettyLista-luokasta OmaLista-luokka. Listaan on kirjoitettava ainakin opettajan antamassa rajapinnassa määritellyt uudet listaoperaatiot. Operaatioiden on oltava “puhtaita”: niissä ei saa esiintyä Tieto-tyyppiä. Esimerkiksi alkion lisäys siten, että alkioiden välille muodostuu kasvava järjestys. Hakemisto-luokalla on OmaLista-tyyppinen attribuutti. Listan viitteet liittävät hakemiston sisällön (tiedostot ja alihakemistot) hakemistoon. Tee omat luokat komentojen tulkille ja käyttöliittymälle ja tee erillinen main-metodin sisältävä ajoluokka. Tulkkiluokka toteuttaa komennot hakemistopuuta käsittelemällä. Luokassa on Hakemisto-tyyppinen attribuutti hakemistopuun juurelle. Kaikki käyttäjän antamat tiedot luetaan käyttöliittymässä. Käyttöliittymässä tehdään valtaosa tulostuksista. Pääsilmukan luonteva paikka on käyttöliittymän luokka. Olio-ohjelmoinnin perusteet | Kevät 2017 | Jorma Laurikkala

Tulkin komennot md: luo parametrina annetulla nimellä alihakemiston nykyiseen hakemistoon, jos samannimistä alihakemisto ei jo ole. mf: luo annetun nimisen ja kokoisen tiedoston nykyiseen hakemistoon, jos samannimistä tiedostoa ei jo ole. cd: asettaa työhakemistoksi joko yli- tai alihakemiston, jos voidaan siirtyä. Ylihakemistoon viitataan kahdella pisteellä. Ilman parametria palataan juureen. ls: listaa näytölle annetun nimisen tiedoston tai hakemiston tiedot, jos listauksen kohde löytyy nykyisestä hakemistosta. Listaa nykyisen hakemiston sisällön, jos parametria ei anneta. find: listaa hakemiston rekursiivisesti esijärjestyksessä. rm: poistaa varmistamatta tiedoston tai hakemiston, jos sellainen on nykyhakemistossa. Olio-ohjelmoinnin perusteet | Kevät 2017 | Jorma Laurikkala

Tulkin komennot cp: kopioi tiedoston annetun nimiseksi uudeksi tiedostoksi, jos nimellä löydetään tiedosto nykyhakemistosta ja hakemistossa ei ole vielä uuden nimistä tiedostoa. mv: nimeää tiedoston annetun nimiseksi uudeksi tiedostoksi, jos nimellä löydetään tiedosto nykyhakemistosta ja hakemistossa ei ole vielä uuden nimistä tiedostoa. exit: lopetaa ohjelman. Muuta: Komentokehotteessa näkyy nykyhakemiston polku. Pienet ja isot kirjaimet katsotaan eri merkeiksi. Nimissä sallitaan vain tietyt merkit. Kaikkiin virheisiin reagoidaan tulostamalla merkkijono ″Error!″. Olio-ohjelmoinnin perusteet | Kevät 2017 | Jorma Laurikkala

Esimerkkiajo Welcome to SOS. />md pics />cd pics /pics/>md cats /pics/>cd cats /pics/cats/>mf ceiling_cat.gif 3677 /pics/cats/>mf dangerous_kiten.jpg 13432 /pics/cats/>mv dangerous_kiten.jpg dangerous_kitten.jpg /pics/cats/>ls ceiling_cat.gif 3677 dangerous_kitten.jpg 13432 /pics/cats/>cd .. /pics/>md dogs /pics/>cd dogs /pics/dogs/>mf world's_ugliest_dog.jpg 118088 Error! /pics/dogs/>mf worlds_ugliest_dog.jpg 118088 Olio-ohjelmoinnin perusteet | Kevät 2017 | Jorma Laurikkala

Esimerkkiajo /pics/dogs/>cd />ls pics/ 2 />md temp />cd temp /temp/>mf memo.txt 42 /temp/>cp memo.txt memo_backup.txt /temp/>ls memo.txt memo.txt 42 /temp/>ls memo_buk.txt Error! /temp/>ls memo_backup.txt memo_backup.txt 42 /temp/>rm memo.txt /temp/>cd .. Olio-ohjelmoinnin perusteet | Kevät 2017 | Jorma Laurikkala

Esimerkkiajo />find /pics/ 2 /pics/cats/ 2 /pics/cats/ceiling_cat.gif 3677 /pics/cats/dangerous_kitten.jpg 13432 /pics/dogs/ 1 /pics/dogs/worlds_ugliest_dog.jpg 118088 /temp/ 1 /temp/memo_backup.txt 42 />exit Shell terminated. Olio-ohjelmoinnin perusteet | Kevät 2017 | Jorma Laurikkala