ict02d Osio2- luento 3 Olio-ohjelmointi: Luokkien kirjoittaminen
|
|
- Kai Mattila
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 ict02d Osio2- luento 3 Olio-ohjelmointi: Luokkien kirjoittaminen Jukka Juslin
2 Luokkien kirjoittaminen Tähänmennessä on käytetty valmiiksi määritettyjä luokkia. Nyt opimme kirjoittamaan omia luokkia olioiden määrittämiseksi Seuraavaksi keskitymme näihin: Luokan määritykset Instanssin tieto (olion tieto) kapselointi ja tiedon muuttajat (setterit ja getterit) Metodin määrittäminen ja parametrien välitys Konstruktorit eli oletusmuodostimet (niiden korvaajat) Jukka Juslin 2
3 Missä ollaan? Luokan anatomia kapselointi Metodin anatomia Jukka Juslin 3
4 Luokkien kirjoittaminen Luokat, joita olemme aikaisemmin käyttäneet ovat Javan standardi luokkakirjastosta (API) Nyt alamme suunnitella ohjelmia, jotka perustuvat luokkiin joita itse kirjoitamme (kohdeluokat yms.) Luokka joka sisältää main metodin on vain ajettavan ohjelman käynnistyspiste Todellinen olio-ohjelmointi perustuu luokkien määrittämiseen (ei laiteta kaikkea mainin sisään, vain käynnistys!!!). Luokat esittävät olioita hyvin suunnitellun toiminnallisuuden ja attribuuttien kanssa Jukka Juslin 4
5 Luokat ja oliot Muista että oliolla on aina tila ja käyttäytyminen Tarkastellaan kuusisivuista noppaa (yhtä noppaa) Sen tila voidaan määrittää siitä mitä sivua se näyttää ylöspäin Sen pääasiallinen käyttäytyminen on, että sitä voidaan heittää Voit ajatella samaa realimaailmassa esimerkiksi koskien coca-cola automaattia. Mikä on automaatin tila esim. Ja mikä on automaatin käyttäytyminen? Voimme esittää noppaa ohjelmistossa suunnittelemalla luokan Noppa tjoka mallintaa nopan tilan ja käyttäytymisen. Tuloksena saadaan noppa, joka on itseasiassa parempi kuin perinteinen noppa. Luokka toimii noppa olion piirustuksena Me voimme instantioida niin monta noppa-objektia kuin tarvitsemme missä tahansa ohjelmassa Jukka Juslin 5
6 Luokat Luokka voi sisältää tiedon määrityksiä ja metodimäärityksiä int koko, paino; char kategoria; Tiedon määritykset Metodi määritykset Jukka Juslin 6
7 Luokat Tiedon arvot määräävät olion tilan, joka on luokasta luotu Metodien toiminnallisuus määrittää olion käyttäytymisen Noppa luokkaamme voisimme määrittää inttyyppisen muutujan, joka näyttää tällähetkellä ylöspäin osoittavan nopan sivun arvon Yksi metodeista heittää noppaa asettamalla tämän arvon satunnaislukuun, joka on ykkösen ja kuutosen välillä Jukka Juslin 7
8 Luokat Haluamme suunnitella Noppa luokkaan kaikki tarvittavat tiedot ja metodit, jotta se olisi monikäyttöinen ja uudelleenkäytettävä resurssi Noppa.java, public class Noppa Mikä tahansa käyttävä ohjelma (Testeri) ei välttämättä käytä kaikkia ko. Luokan ominaisuuksia Jukka Juslin 8
9 Noppa luokka Noppa luokka sisältää kaksi arvoa vakio MAX, joka esittää maksimaalista nopan arvoa muuttujan nopanarvo joka esittää nopan arvoa tällä hetkellä (ylöspäin oleva sivu heiton jälkeen) heitä metodi käyttää random metodia Math luokasta määrätäkseen nopan saaman arvon On myös olemassa metodeita, joilla eksplisiittisesti asetetaan ja noudetaan nopan arvo milloin tahansa Jukka Juslin 9
10 tostring metodi Kaikkien luokkien, jotka esittävät olioita, pitäisi määrittää tostring metodi tostring metodi palauttaa merkkijono Stringin, joka esittää olion (tekstimuodossa, oliota ei luonnollisesti voi tulostaa suoraan) Sitä kutsutaan automaattisesti kun olio konkatenoidaan Stringiin (+ operaatio) tai kun olio välitetään println metodille Jukka Juslin 10
11 Konstruktorit eli oletusmuodostimet Kuten aikaisemmin mainittu, konstruktori on erityinen metodi, jota käytetään olion alustamiseen, kun se alunperin luodaan Konstruktorilla on sama nimi kuin luokalla, ei palautusarvoa Noppa konstruktoria käytetään asettamaan jokaisen uuden noppa olion antamaksi lähtötulokseksi yksi Myöhemmin tutustutaan konstruktoreihin lisää Jukka Juslin 11
12 Tiedon näkyvyys (skooppi) Tiedon näkyvyys on alue ohjelmasta, josta tiettyyn tietoon päästään viittaamaan (käyttämään sitä) Tietoon, joka määritetään luokkatasolla voidaan viitata luokan kaikista metodeista käsin Tietoon, joka määritellään metodin sisällä, päästään käsiksi vain ko. metodin sisällä Tietoa, joka määritellään metodin sisällä kutsutaan paikalliseksi tiedoksi / paikalliseksi muuttujaksi Noppa luokassa muuttuja tulos määritetään tostring metodin sisällä se on pakallinen ko. Metodille ja tulkseen ei voida viitata muualta. Vertaa esimerkiksi taulu-olioiden length attribuuttia, joka on public-tyyppinen ja luokkatasolla Jukka Juslin 12
13 Instanssin tieto eli olion tieto nopanarvo muuttuja Noppa luokassa kutsutaan instanssin tiedoksi sillä jokainen instanssi (olio) joka luodaan omistaa oman version siitä Luokka määrittää tiedon tyypin, mutta ei varaa tiedolle mitään muistitilaa Jokainen kerta kun Noppa olio luodaan, uusi nopanarvo muuttuja luodaan myös Luokan oliot jakavat metodin määritykset, mutta jokaisella oliolla on oma muistiavaruus Tämä on ainoa tapa miten kahdella oliolla voi olla erilaiset tilat Jukka Juslin 13
14 Instanssitieto Voimme kuvata kaksi Noppa oliota NopanHeitto ohjelmasta kuten seuraavassa: noppa1 nopanarvo 5 noppa2 nopanarvo 2 Jokaisella oliolla pitää omaa nopanarvo muuttujaajatätäkauttaoliollaon omatila Jukka Juslin 14
15 UML kaaviot eli diagrammit Kuten aikaisemmasta on tuttua, UML tarkoittaa Unified Modeling Languagea UML diagrammit näyttävät luokkien ja olioiden väliset suhteet UML luokkadiagrammi koostuu yhdestä tai useammasta luokasta, joissa jokaisessa on erotetut osiot luokan nimelle, attribuuteille (tiedolle) ja operaatioille (metodeille) Viivat luokkien välillä (luokkakaaviossa) esittävät yhteyssuhteita eli assosiaatioita. Näistä tutustumme seuraaviin (kahteen) tyyppiin: Katkoviivalla varustettu nuoli kertoo, että toinen luokka (siis luokasta tehty olio) käyttää toista (eli kutsuu sen metodeja) kontrolli siirtyy. Näitä katkoviivanuolia käytämme etupäässä, tosin tutustumme myös koostumus-suhteisiin eli aggregaatioihin (joita ilmaistaan ns. Timanttimerkillä) Jukka Juslin 15
16 UML luokkakaaviot UML luokka class diagram HeitäNoppaa ohjelmalle: HeitäNoppaa +main (args : String[]) : void -nopanarvo : int Noppa +heitä() : int +setnopanarvo (int arvo) : void +getnopanarvo() : int +tostring() : String Jukka Juslin 16
17 Missä ollaan? Luokan anatomia Kapselointi Metodin anatomia Jukka Juslin 17
18 Enkapsulointi Voimme ottaa yhden kahdesta näkökulmasta tarkastella oliota: sisäinen - luokan muuttujien ja metodien yksityiskohdat, eli luokan määrittäminen ulkoinen - palvelut, jotka olio tarjoaa ja kuinka olio vuorovaikuttaa muiden järjestelmän olioiden kanssa Ulkoisestä näkökulmasta, olio on enkapsuloitu entiteetti (eli kokonaisuus), se tarjoaa joukon määritettyjä palveluita Nämä palvelut määrittävät olion rajapinnan (eli interface), joka näkyy ulospäin Jukka Juslin 18
19 kapselointi Yksi olio (kutsutaan asiakkaksi (client)) voi käyttää toista oliota, jotta voisi tarjota palvelut jotka sen pitää tarjota Olion asiakas voi pyytää ko. olion palveluita (eli kutsua olion metodeja), mutta sen ei pitäisi tietää kuinka ko. palvelut suoritetaan. Vrt. Esim. Coca-Cola automaatin toiminta. Jos käyttäjää ajatellaan oliona, hän haluaa vain Coca-Colaa eikä välittää automaatin sisäisestä toiminnasta. Mikä tahansaa muutos olion tilassa (sen muuttujissa) pitää tehdä olion metodien kautta (eli tavallisesti set ja get metodit) Huomaa myös poikkeukset tästä esim. Taulukko-luokkien lengthattribuutti (public) Meidän pitää tehdä vaikeaksi, ellei jopa mahdottomaksi, asiakaan päästä käsiksi olion muuttujiin suoraan (kuten taulukko-olion length) Eli, olioiden pitäisi olla itsehallintoon perustuvia (self-governance) Jukka Juslin 19
20 kapselointi Enkapsuloitua oliota voidaan ajatella mustana laatikkona sen sisäinen toiminta peitetään asiakkailta Asiakas kutsuu rajapintametodeja (tavalliset public-tyyppiset metodit) nämä hallitsevat instanssin tietoa Asiakas Metodit Tieto Jukka Juslin 20
21 Näkyvyyden muuntelu Javassa, me saavutamme kapselointin käyttämällä sopivia näkyvyysmääritteitä (visibility modifiers) näkyvyysmäärite on Javan varattu sana, joka määrittää tietyn metodin tai muuttujan luonteen final määritettä käytetään vakioiden määrittämiseen (esim. private final EUROTOMARK = 5.94) Javassa on kolme näkyvyyden muuntelumäärettä: public, protected ja private protected määre liittyy periytymiseen, jota käsittelemme opintojaksomme osiossa kolme. Tehtävissä, emme käytä ko. määrettä tässä osiossa. Jukka Juslin 21
22 Näkyvyyden määritteet Luokan osiin (attribuutit tai metodit), jotka määritetään julkisiksi (public visibility) voidaan viitata mistä tahansa käsin Luokan osiin (attribuutit ja metodit), jotka määritetään yksityisiksi (private visibility) voidaan viitata ainoastaan ko. luokan sisältä Luokan osiin (attribuutit ja metodit), joille ei anneta näkyvyyttä (visibility) ollenkaan, annetaan oletusarvoinen näkyvyys (default visibility) ja näihin voidaan viitata mistä tahansa luokasta samassa paketissa Jukka Juslin 22
23 Näkyvyyden määrittäminen Julkiset muuttujat rikkovat kapselointiperiaatetta vastaan, sillä ne mahdollistava sen että asiakas pääse käsiin ja voi voi muutella luokan attribuuttien arvoja Siksi luokan muuttujia ei saisi määrittää julkisen näkyvyyden kanssa (eli siis pitää aina käyttää private sanaa ennen muuttujan nimeä) On hyväksyttävää antaa vakiolle (public final MAX) julkinen näkyvyys, jolloin sitä voidaan käyttää (mutta ei muuttaa) luokan ulkopuolelta Julkiset vakiot eivät riko kapselointiperiaatetta vastaan, sillä vaikka asiakkaalla on pääsy näihin vakioihin, asiakas ei voi muuttaa niiden arvoa (kun final määre käytössä!) Jukka Juslin 23
24 Näkyvyyden määrittäminen Metodit, jotka tarjoavat olion palvelut määritetään julkisen näkyvyyden (public visibility) kanssa, jotta niitä voidaan kutsua asiakkaista käsin Esim. annacocacola(1) // määräys Julkisia metodeja kutsutaan myös palvelumetodeiksi (service methods) Metodia, joka luodaan pelkästään auttamaan palvelumetodia kutsutaan tukimetodiksi (esimerkiksi pudotapullo()) Koska tukimetodia ei kutsuta asiakkaasta käsin, se pitää määrittää tyypillisesti private näkyvyyden kanssa Jukka Juslin 24
25 Näkyvyysmääritteet public private Muuttujat, attribuutit Metodit Rikkovat enkapsulointia Tarjoavat palveluja asiakkaille Tukevat enkapsulointia Tukevat luokan muita metodeja Jukka Juslin 25
26 Aksessorit ja mutaattorit eli getterit ja setterit Koska instanssitieto on yksityistä (private), luokka yleensä tarjoaa palveluita muuttujien arvojen lukemista ja päivittämistä varten Aksessorimetodi (accessor method) palauttaa muuttujan nykyisen arvon (lukee muuttujan arvon) - kutsutaan myös gettereiksi Mutaattori metodi (mutator method) muuttaa muuttujan arvoa (päivittää muuttujan arvoa) kutsutaan myös settereiksi Nimet aksessori ja mutaattorimetodeille ovat muotoa getx ja setx, jossa X on arvon nimi (esim. setoppilasnumero(numero) Näitä kutsutaan aksessorin ja mutaattorin sijasta monasti gettereiksi ja settereiksi Jukka Juslin 26
27 Mutaattorin rajoitukset Mutaattorien käyttö antaa luokan suunnittelijalle mahdollisuuden rajoittaa asiakkaan mahdollisuuksia muutella olion tilaa (muuttujien arvoja suoraan, setteriin voi laittaa esim. tarkistuksen minkälainen luku on kyseessä) Mutaattori suunnitellaan usein niin, että muuttujien arvot voidaan asettaa vain tietyissä rajoissa. Esimerkiksi tilin omistajan nimi voidaan rajata max 50 merkkiin sillä tietokannassa jossa tietoja lopulta säilytetään on todennäköisesti kokorajoitus Esimerkiksi setnopanarvo mutaattori Noppa luokassa pitäisi rajoittaa niin, että arvo voidaan asettaa ainostaan johonkin tasalukuun sallitulla arvoaluella (tässä 1:stä MAX vakion arvoon asti) Myöhemmin tutustumme tarkemmin siihen miten tällaisia rajoituksia toteutetaan Jukka Juslin 27
28 Luokkien kirjoittaminen - this Muista this-avainsanan käyttö This-sanalla viitataan olion attribuuttiin Ilman this sanaa metodille tulevat parametrit on nimettävä erinimisiksi kuin luokan attribuutit Jukka Juslin 28
29 Lisää this-sanasta This-viittaa aina kyseisellä hetkellä käytössä olevaan olioon Koko nykyinen olio voidaan palauttaa kirjoittamalla return(this); Jukka Juslin 29
30 tostring metodi Pääsääntöisesti kaikille luokille pitää kirjoittaa tostring metodi tostring konkatenoi Stringiksi olion attribuuttien arvon tällähetkellä Eli kyseessä on ns. olion tilan tulostaminen Ilman tostring metodia saadaan oliosta tulostumaan ns. OID numero, joka on muistiosoite viitaten missä itse olio sijaitsee Jukka Juslin 30
31 Missä ollaan? Luokan anatomia kapselointi Metodin anatomia Jukka Juslin 31
32 Metodin määrittämiset Katsomme seuraavassa metodin määrittämistä hiukan tarkemmin Metodin määrittely määrää koodin, joka tullaan suorittamaan kun metodia kutsutaan Kun metodia kutsutaan, kontrolli (ns. etenemisrivi) ohjelmassa hyppää ko. Metodiin ja suorittaa ko. metodin koodin. Tämän suorittaminen loppuu kun tullaan returnlauseeseen. Kun tämä valmistuu, kontrolli palaa takaisin sinne mistä metodia kutsuttiin (voi tehdä esim. sijoituksen) ja jatkaa seuraavalta riviltä Metodi voi palauttaa tai olla palauttamatta arvon, riippuen kuinka metodi on määritetty Jukka Juslin 32
33 Metodin kontrollivirta Jos kutsuttu metodi on samassa luokassa tarvitaan vain metodin nimi kutsumiseen laske munmetodi munmetodi(); Jukka Juslin 33
34 Metodin kontrollivirta Kutsuttu metodi on usein osa toista luokkaa tai oliota (siis nimenomaan oliota yleensä, ellei static) main teese autamua olio.teese(); autamua(); Jukka Juslin 34
35 Metodin headeri Metodin määritys alkaa metodin headerilla char laske(int num1, int num2, String viesti) metodin nimi parametrilista palautus tyyppi Parametrilista määrittää jokaisen parametrin tyypin ja nimen Parametrin nimeä metodin määrittelyssä kutsutaan formaaliksi parametriksi. Ko. muuttujat luodaan aivan kuten metodin sisällä luodaan muuttujia. Jukka Juslin 35
36 Metodin runko Metodin headeria eli otsikkoa seuraa metodin runko (method body). Muista: Headerissa on määritetty myös formaalit parametrit. char laske(int num1, int num2, String viesti) { int sum = num1 + num2; char tulos = viesti.charat (sum); } return(tulos); Returnissa palautettavan Olion tulee olla palautustyyppiä eli samaa kuin metodin headerissa sum and tulos ovat paikallista tietoa tähän metodiin Nämä muuttujat luodaan aina kun tätä metodia kutsutaan, ja ne tuhotaan kun metodin suoritus loppuu Jukka Juslin 36
37 return lause Metodin palautustyyppi määrää minkätyyppisen arvon metodi lähettää takaisin sinne, mistä metodia on kutsuttu Metodilla, joka ei palauta arvoa on void palautustyyppi (metodin formaalissa esittelyssä) return lause määrää mikä arvo metodista palautetaan return(olio); Olion on tässä oltava samaa tyyppiä kuin formaalissa esittelyssä määritetty tyyppi ja kutsumispaikassa olio tulee sijoittaa esim. samantyyppiseen muuttujaan Jukka Juslin 37
38 Parametrit Kun metodia kutsutaan, varsinaisten parametrien arvot kutsun yhteydestä kopioidaan formaaleiden parametrien arvoiksi ch = olio.laske (25, count, Moro"); char laske (int num1, int num2, String viesti) { int sum = num1 + num2; char tulos = viesti.charat (sum); } return tulos; Jukka Juslin 38
39 Paikallinen data eli paikallinen tieto Kuten olemme huomanneet, paikalliset muuttujat voidaan määrittää metodin sisällä Metodin formaalit parametrit luovat automaattisia paikallisia muuttujia kun metodia kutsutaan Kun metodi lopettaa toimintansa, kaikki paikalliset muuttujat tuhotaan (mukaanlukien formaaleista parametreistä tehdyt muuttujat) Pidä mielessä, että instanssimuuttujat, luokan tasolla määritetyt, ovat olemassa niinkauan kuin olio on olemassa Jukka Juslin 39
40 Pankkitiliesimerkki Katsotaan toista esimerkkiä, joka demonstroi toteutusyksityiskohdat luokista ja metodeista Esitämme pankkitilä luokalla, jonka nimi on Tili Pankkitilin tila voi sisältää pankkitilin numeron, saldon tällähetkellä ja tilin omistajan nimen Tilin käyttäytyminen (tai sen palvelut) sisältävät otot ja talletukset sekä koron lisäämisen tilille Jukka Juslin 40
41 Testeriohjelmat Testeriohjelma eli ajuriohjelma ajaa toisia, kiinnostavampia osia ohjelmasta Testeriohjelmia käytetään usein testaamaan muista osia ohjelmasta Testeriohjelma sisältää luonnollisesti mainmetodin, aloittaa siis ajettavan Transaktion luokka sisältää main metodin, joka ajaa Tili luokan, kokeillen sen palveluita Jukka Juslin 41
42 Pankkitili esimerkki tili tilnumero saldo nimi Matti Nykänen tili tilinumero saldo nimi Pekka Pere Jukka Juslin 42
43 Pankkitili esimerkki On olemassa joitain parannuksia, joita voidaan tehdä Tili luokkaan Muodolliset getterit ja setterit pitäisi määrittää kaikille muuttujille Joidenkin metodien design voisi olla robustimpi (vankempi), kuten todentaa että määrä parametri nosto metodille on positiivinen saldo - nosto Jukka Juslin 43
44 Konstruktorit - lisää Huomaa, että konstruktorilla ei ole palautustyyppiä määritetty metodin headeriin (formaaliin määritykseen) ei edes void tyyppiä! Yleinen virhe on laittaa konstruktorille palautustyyppi, mikä tekee siitä tavallisen metodin, jolla sattuu olemaan sama nimi kuin ko. luokalla Ohjelmoijan ei tarvitse määrittää konstruktoria luokalla (eli oletuskonstruktori on jo olemassa, kyse on sen korvaamisesta) Jokaisella luokalla on valmiiksi Javan tekemä oletuskonstruktori eli oletusmuodostin (default constructor) joka ei ota parametrejä (muista kuitenkin myös konstruktorin ylikuormittaminen) public Pvm() // esimerkki oletuskonstruktorista Jukka Juslin 44
45 Konstruktoreista Synonyymi konstruktori-sanalle on muodostin On tärkeää osata seuraavat käsitteet: Oletuskonstruktori (oletusmuodostin) Korvaa Javan oletusarvoisen konstruktorin ilman parametrejä() olevan konstruktorin Parametrillinen konstruktori (parametrillinen muodostin) Saa vaihtelevan määrän parametrejä Kopiokonstruktori (kopiomuodostin) Saa parametrinä oman luokan olion ja kopio olion nykyiseen olioon (eli tekee kopin) Jukka Juslin 45
46 Missä ollaan? Luokan anatomia kapselointi Metodin anatomia Selvisimme tästä, seuraavaksi yhteenveto Jukka Juslin 46
47 Yhteenveto Tutustuimme Luokan määrittämiseen Instanssidataan (attribuutit) kapselointi ja Java määreet (private ja public) Metodin määrittäminen ja parametrien välittäminen Konstruktorit Jukka Juslin 47
Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin
Olio-ohjelmointi: Luokkien toteuttaminen Jukka Juslin Luokkien kirjoittaminen Tähän mennessä on käytetty valmiiksi määritettyjä luokkia. Nyt opimme kirjoittamaan omia luokkia olioiden kuvaamiseksi Seuraavaksi
LisätiedotMikä yhteyssuhde on?
1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
Lisätiedoton ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä
LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen
LisätiedotKompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma
1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
LisätiedotTaulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
LisätiedotOsion kaksi kertaus. Jukka Juslin. Jukka Juslin
Osion kaksi kertaus Jukka Juslin Sisältö Taulukot ja Stringit Luokkien kirjoittaminen Oletusmuodostin UML Taulukot Taulukot luodaan Java-kielessä seuraavanlaisesti: int [] arvosanat = {1,2,3,4,5}; Taulukon
LisätiedotMetodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
Lisätiedot9. Periytyminen Javassa 9.1
9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.
LisätiedotSisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotSisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2
6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma
LisätiedotJavan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
Lisätiedot9. Periytyminen Javassa 9.1
9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat
Lisätiedot1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotSisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen
Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät
LisätiedotSisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus
Sisällys 19. Olio-ohjelmointia Javalla Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit
LisätiedotSisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä
Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat
Lisätiedot2. Olio-ohjelmoinista lyhyesti 2.1
2. Olio-ohjelmoinista lyhyesti 2.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 2.2 Yleistä Olio-ohjelmointia käsitellään hyvin
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja
Lisätiedot812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
LisätiedotYHTEYSSUHDE (assosiation)
YHTEYSSUHDE (assosiation) -Mikä on yhteyssuhde? -Miten toteutan yhteyssuhteen? 1 Mikä on yhteyssuhde? Yhteyssuhde kuvaa kahden olion välistä suhdetta: Esim. Auto Henkilö, omistussuhde Tili Asiakas, omistussuhde
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotMetodien tekeminen Javalla
1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.
Lisätiedot19. Olio-ohjelmointia Javalla 19.1
19. Olio-ohjelmointia Javalla 19.1 Sisällys Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit
LisätiedotUML ja luokkien väliset suhteet
UML ja luokkien väliset suhteet -Luokan kuvaaminen UML-tekniikalla -Yhteyssuhde ja koostumussuhde 1 Luokan kuvaaminen UML-tekniikalla : Luokka - attribuutti1 : tietotyyppi # attribuutti2 : tietotyyppi
LisätiedotPeriytyminen (inheritance)
1 Periytyminen (inheritance) Mitä periytyminen on? Yli- ja aliluokka Konstruktorit Get- ja set-metodi Muut metodit tostring Yksinkertainen pääohjelma 1 Mitä periytyminen on? Periytymisen avulla olemassa
LisätiedotHarjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
LisätiedotSisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä
Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat
LisätiedotOliot viestivät metodeja kutsuen
6. Metodit 6.1 Sisällys Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit). Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen
LisätiedotOsio2, olio-ohjelmointi: Luokkien ja olioiden käyttäminen Jukka Juslin
Osio2, olio-ohjelmointi: Luokkien ja olioiden käyttäminen Jukka Juslin Jukka Juslin 1 Luokkien ja olioiden käyttäminen Voimme luoda mielenkiintoisia ohjelmia käyttämällä Java API:sta jo löytyviä luokkia
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java) Tavoite Opiskelija ymmärtää olio-ohjelmoinnin problematiikan. Opiskelija osaa määritellä ja käyttää itse
LisätiedotSisältö. 22. Taulukot. Yleistä. Yleistä
Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä
LisätiedotLuokat ja oliot. Ville Sundberg
Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi
LisätiedotKOHDELUOKAN MÄÄRITTELY
KOHDELUOKAN MÄÄRITTELY Kohdeluokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Taulukon alkiona
LisätiedotVertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004
Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;
LisätiedotSisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)
Sisällys JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys Periytyminen (inheritance) Näkyvyys (visibility) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E. Hyvönen: Java Osa
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotAalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa
Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet Pakkaukset ja määreet Toisiinsa liittyvät luokkatiedostot voidaan koota pakkauksiksi. Luo hierarkiaa ja järjestystä ohjelmistotuotteeseen.
LisätiedotOlion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
LisätiedotRajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.
11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen
LisätiedotUML Luokkakaavio 14:41
UML Luokkakaavio UML Olio-ohjelman luokkien pääpiirteet voidaan kätevähkösti esittää ns. UML-luokkakaaviona. Näin usein tehdäänkin esim. suunniteltaessa, millaisia luokkia ohjelmaan on tarkoitus laatia,
LisätiedotA) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)
1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden
LisätiedotRajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
LisätiedotSisältö. 2. Taulukot. Yleistä. Yleistä
Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä
LisätiedotP e d a c o d e ohjelmointikoulutus verkossa
P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN
LisätiedotSisällys. 15. Lohkot. Lohkot. Lohkot
Sisällys 15. Lohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.1 15.2 Lohkot Aaltosulkeet
LisätiedotLohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3
15. Lohkot 15.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.2 Lohkot Aaltosulkeet
LisätiedotLohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3
16. Lohkot 16.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.2 Lohkot Kaarisulut
LisätiedotYleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.
2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä
LisätiedotSisällys. 11. Rajapinnat. Johdanto. Johdanto
Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
Lisätiedot4. Olio-ohjelmoinista lyhyesti 4.1
4. Olio-ohjelmoinista lyhyesti 4.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 4.2 Yleistä Olio-ohjelmointia käsitellään hyvin
Lisätiedot20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotOhjelmoinnin jatkokurssi, kurssikoe 28.4.2014
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.
LisätiedotSisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotLuokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat:
1. Luokan jäsenet Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat: class luokan_nimi tyypit: enum, struct, class, typedef
LisätiedotOsio2: Taulukot Jukka Juslin
Osio2: Taulukot Jukka Juslin Jukka Juslin 1 Taulukot Taulukot ovat olioita, jotka auttavat meitä organisoimaan suuria määriä tietoa Seuraavassa keskitymme näihin: Taulukon tekeminen ja käyttö Rajojen tarkastus
LisätiedotPakkauksen kokoaminen
13. Pakkaukset 13.1 Sisällys Pakkauksen kokoaminen package-määrettä käyttäen. Pakkaukset ja hakemistorakenne. Pakkauksen luokkien käyttö muissa pakkauksissa importlauseen avulla. Pakkaukset ja näkyvyys.
LisätiedotSisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4
Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.
Lisätiedot7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
LisätiedotOhjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
Lisätiedot812336A C++ -kielen perusteet, 21.8.2010
812336A C++ -kielen perusteet, 21.8.2010 1. Vastaa lyhyesti seuraaviin kysymyksiin (1p kaikista): a) Mitä tarkoittaa funktion ylikuormittaminen (overloading)? b) Mitä tarkoittaa jäsenfunktion ylimääritys
Lisätiedotpublic static void main (String [] args)
HAAGA-HELIA OHJELMOINTI 1(5) OHJELMALUOKKA Ohjelma-luokan käynnistää public static void main (String [] args) main-metodiin voi koodata 1. ohjelman logiikan tai 2. luoda ohjelma-olion ja kutsua metodia,
LisätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
LisätiedotOperaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
Lisätiedot2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
LisätiedotListarakenne (ArrayList-luokka)
Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen
LisätiedotPakkauksen kokoaminen
13. Pakkaukset 13.1 Sisällys Pakkauksen kokoaminen (package). Pakkaukset ja hakemistorakenne. Pakkauksen luokkien käyttö muissa pakkauksissa (import). Pakkaukset ja näkyvyys. 13.2 Pakkauksen kokoaminen
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Kotitehtävä 6, toteuttakaa alla olevan luokka ja attribuutit (muuttujat) Kotitehtävä 6, toteuttakaa alla olevan luokka ja attribuutit (muuttujat) Huom!
LisätiedotLuokan sisällä on lista
1 Luokan sisällä on lista Luokan sisällä lista Listan sisältävä luokka Konstruktorit get-metodi Lista muissa metodeissa addxx-metodi Yksinkertainen pääohjelma Kertauksen List-luokan metodeja 1 Luokan sisällä
LisätiedotPoikkeustenkäsittely
1 Poikkeustenkäsittely Mitä poikkeustenkäsittely tarkoittaa? Poikkeuksen käsitteleminen Poikkeusluokkien hierarkia Poikkeuksen heittäminen 1 Mitä poikkeustenkäsittely tarkoittaa? Poikkeus (Exception) on
Lisätiedot16. Javan omat luokat 16.1
16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
LisätiedotTehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki
Tehtävä 1 Koherentti selitys Koherentti esimerkki ½p ½p Tehtävä 2 Täysiin pisteisiin edellytetään pelaajien tulostamista esimerkin järjestyksessä. Jos ohjelmasi tulostaa pelaajat jossain muussa järjestyksessä,
Lisätiedot812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä
2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa
LisätiedotTIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely
Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia
Lisätiedot14. Poikkeukset 14.1
14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.
Lisätiedot1 Tehtävän kuvaus ja analysointi
Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.
Lisätiedot7. Oliot ja viitteet 7.1
7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin
Lisätiedot17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotMuutamia peruskäsitteitä
Muutamia peruskäsitteitä Huom. 1: nämä peruskäsitteet eivät muodosta hyvin määriteltyä keskenään yhteensopivien käsitteiden joukkoa, vaan käsitteet ovat osittain päällekkäisiä ja eri yhteyksissä niillä
Lisätiedot4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Olioiden yhteistoiminta
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Olioiden yhteistoiminta Tausta Rectangle - length : double - width : double + Rectangle() + Rectangle(len : double, wid : double) + setlength(len :
Lisätiedot11. Javan valintarakenteet 11.1
11. Javan valintarakenteet 11.1 Sisällys If- ja if-else-lauseet. Orpo else. Valintaa toisin: switch-lause. 11.2 If-lause Merkitään varatulla sanalla if. Kuvaa yksisuuntaisen päätöksen: rakenteen lauseet
LisätiedotSisällys. 16. Lohkot. Lohkot. Lohkot
Sisällys 16. ohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.1 16.2 ohkot aarisulut
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero
LisätiedotSisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki
Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.
LisätiedotLuokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)
4 Luokkamalli Rakenteet mittojen mukaan. Mitat rakenteen mukaan. Tämän osan sisältö Luokkakaavio luokkakaavion elementti attribuutit operaatiot määreet Olioiden väliset suhteet kytkös kooste yleistys rajapinta
LisätiedotSisällys. 14. Poikkeukset. Johdanto. Johdanto
Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotTaulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu
Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on
LisätiedotT Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010
11. Luokka Opetellaan seuraavaksi, miten omia luokkia kirjoitetaan. Aikaisemmin olikin jo esillä, että luokka on tietorakenne, joka sisältää sekä tiedot (attribuutit) että niitä käsittelevät aliohjelmat
LisätiedotKääreluokat (oppikirjan luku 9.4) (Wrapper-classes)
Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
Lisätiedot8. Näppäimistöltä lukeminen 8.1
8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)
Lisätiedot