Oliosuunnittelu ja luokkakohtaiset komponentit
|
|
- Liisa Sala
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Oliosuunnittelu ja luokkakohtaiset komponentit
2 Sisällys Ohjelmistosuunnittelusta Tarvittavien luokkien tunnistaminen Luokka-attribuutit ja -metodit Metodien suunnittelu Jukka Harju,
3 Ohjelmistosuunnittelu Ohjelmistosuunnittelussa käytetään useita eri prosessimalleja (mm. Rational Unified Process ja extreme Programming) Käytettävästä mallista riippumatta ohjelmistoprosessi sisältää lähes aina seuraavat osat: Vaatimusmäärittely Toiminnallinen määrittely Tekninen suunnittelu Toteutus Testaus Tuotantoonsiirto Ylläpito Jukka Harju,
4 Vaatimusmäärittely Vaatimusmäärittelyssä kuvataan ohjelmistolle asetettavat vaatimukset eli kuinka ohjelmiston tulee toimia. Vaatimukset saadaan ohjelmiston tilaajalta, joka suomalaisessa ohjelmistoteollisuudessa on useimmiten asiakkaana oleva yritys. Vaatimusmäärittely on korkean tason kuvaus, jota tarkennetaan alemman tason kuvauksissa (mm. toiminnallinen määrittelykuvaus ja suunnittelukuvaus). Esimerkki suorituskykyyn liittyvästä vaatimuksesta web-pohjaiselle järjestelmälle: Järjestelmän tulee pystyä palvelemaan vähintään 1000 yhtäaikaista käyttäjää alle 2 sekunnin vasteajoilla. Jukka Harju,
5 Toiminnallinen määrittely Toiminnallisessa määrittelyssä kuvataan kaikki järjestelmän toteuttamat toiminnot ja liitännät järjestelmän ulkopuolelle. Toiminnallisen määrittelyn tuloksena syntyy määrittelydokumentti, joka kuvaa mitä järjestelmällä voi tehdä ja miten käyttäjä voi järjestelmää käyttää. Toiminnallinen määrittely ei ota kantaa siihen miten toiminnot tulee toteuttaa. Määrittelyn tulisi olla niin kattava, että seuraavissa vaiheissa ei ole enää epäselvää miten ohjelman tulee toimia eri tilanteissa. Tähän ei kuitenkaan käytännössä koskaan päästä. Toiminnallisessa määrittelyssä voidaan kuvata esimerkiksi webkäyttöliittymän eri näytöt ja näytöillä olevat komponentit. Määrittelydokumentin tulee sisältää tällöin sekä sanalliset että graafiset kuvaukset ko näytöistä. Jukka Harju,
6 Tekninen suunnittelu Teknisen suunnittelu tarkoituksena on kuvata ohjelmiston tekninen arkkitehtuuri. Suunnittelussa kuvataan kuinka ohjelma suorittaa toiminnallisessa määrittelyssä kuvatut toiminnot. Suunnittelukuvauksesta ilmenee kuinka ongelma voidaan jakaa pienempiin, hallittavan kokoisiin osiin ja mitä kukin osa tekee. Olio-orientoinut suunnittelukuvaus kertoo mitä luokkia ja olioita tarvitaan ja mitkä ovat niiden keskinäiset suhteet. Sisältää mm. käytettyjen ohjelmistokomponenttien (luokkien) kuvaukset, niiden keskinäisten riippuvuuksien kuvaukset, tietovaraston kuvauksen jne. Kuvaus koostuu eri tasoista, esim. ohjelmataso, luokkataso, metoditaso. Kaikkein alimman tason osat kuvaukseen saa tuotettua esim. javadocista. Jukka Harju,
7 Toteutus Toteutuksessa toteutetaan suunnittelukuvauksen mukainen lähdekoodi. Aloittelevat ohjelmoijat luulevat usein, että toteutus on ohjelmistoprosessin ydin, mutta itse asiassa sen tulisi olla vähiten luovuutta vaativa kohta. Lähes kaikki tärkeät päätökset tehdään jo vaatimusmäärittelyn ja suunnittelun aikana. Toteutuksen tulisi keskittyä ohjelmoinnin yksityiskohtiin, tyyliin (JCC) ja dokumentointiin (javadoc). Tuloksena on suoritettava ohjelmisto, joka yleensä kuitenkin sisältää suhteellisen paljon toiminnallisia virheitä. Jukka Harju,
8 Testaus Testauksessa yritetään varmistaa, että ohjelma täyttää sille asetetut vaatimukset. Testauksessa yritetään löytää virheitä. Koko ohjelma tulee aina testata huolella. Testaus ei todista ohjelman toimivan oikein vaan todistetuksi tulee ainoastaan se, että ohjelma sisältää virheitä. Virheitä löytyy toteutuksen huolellisuudesta riippumatta lähes kaikista ohjelmistoista. Debuggaus on löydettyjen virheiden alkuperän etsimistä ja virheiden korjaamista. Jukka Harju,
9 Tuotantoonsiirto Tuotantoonsiirrossa testattu ja toimivaksi todettu ohjelmisto asennetaan toimintaan tuotantoympäristöön. Tuotantoonsiirtoon liittyy usein mm. laitteiston asennus ja valmistelu, tietoliikenneyhteyksien valmistelu ja käyttäjien kouluttaminen. Jukka Harju,
10 Ylläpito Ylläpito sisältää toimenpiteet, joita ohjelmistolle tarvitsee tuotantoonsiirron jälkeen tehdä, jotta asiakas olisi tyytyväinen ohjelmistoon. Laadukkaastikin ohjelmistosta löytyy useimmiten tuotantoonsiirron jälkeenkin pieniä virheitä, jotka tulee korjata. Käyttäjille tulee uusia tarpeita, joten ohjelmistoon on lisättävä uusia ominaisuuksia. Jukka Harju,
11 Aina edellä kuvattu ei ole niin ongelmatonta Jukka Harju, lähde:
12 Sisällys Ohjelmistosuunnittelusta Tarvittavien luokkien tunnistaminen Luokka-attribuutit ja -metodit Metodien suunnittelu Jukka Harju,
13 Tarvittavien luokkien tunnistaminen Oliosuunnittelun tärkein tehtävä on määritellä ohjelmistossa tarvittavat luokat ja oliot sekä niiden väliset yhteydet. Luokat voivat olla Javan valmisluokkia, vapaasti saatavia Javan ulkopuolisia valmisluokkia (ns. 3rd party -luokkia), omia aiemmin tehtyjä luokkia tai täysin uusia. Eräs tapa tunnistaa mahdollisesti tarvittavat luokat on vaatimusmäärittelyn apuna käyttäminen. Oliot esiintyvät vaatimusmäärittelyssä useimmiten substantiiveina ja metodit verbeinä. Jukka Harju,
14 Tarvittavien luokkien tunnistaminen Osa vaatimusmäärittelystä: Ohjelman tulee tuottaa asiakkaalle lähetettävä lasku. Lasku tulee kirjoittaa tekstitiedostoon. Lasku sisältää: 1. Myyjän nimen ja osoitteen 2. laskutuspäivän 3. Asiakkaan nimen ja osoitteen 4. Laskun identifioivan laskunumeron 5. Viitenumeron 6. Tilinumeron, jolle lasku maksetaan 7. Laskun muodostamisessa käytetyn tuntihinnan 8. Kaikki virheilmoitukset kirjoitetaan lokitiedostoon. Kaikista substantiiveista ei kuitenkaan tule luokkaa / oliota lopullisessa ratkaisussa! Jukka Harju,
15 Tarvittavien luokkien tunnistaminen Luokka edustaa joukkoa samankaltaisia olioita. Luokat tulisi nimetä yksikkömuodossa olevilla substantiiveilla: Oppilas Osoite Viitenumero Poikkeuksiakin tietysti löytyy (esim. Tiedostotyokalut). Jukka Harju,
16 Tarvittavien luokkien tunnistaminen Joskus on vaikea päättää tarvitaanko asian esittämiseen erillinen luokka. Esimerkiksi asiakkaan osoite voidaan esittää useampana erillisenä attribuuttina tai yhtenä Osoitetyyppisenä attribuuttina. Pääsääntönä on välttää kovin monimutkaisten luokkien tekemistä. Tällaiset luokat tulee pilkkoa useampaan pienempään luokkaan. Jukka Harju,
17 Tarvittavien luokkien tunnistaminen Luokissa halutaan esittää tarvittava määrä yksityiskohtia. Esimerkiksi jokaista kulkuneuvoa kuvaamaan ei välttämättä tarvita omaa luokkaa, vaan voidaan käyttää yleisempää Kulkuneuvoluokkaa tarvittavin attribuutein. Tällöin Kulkuneuvo-luokan attribuuttina voi olla nimi, joka kertoo mikä laite on kyseessä. Esimerkiksi luokkien Auto, Moottoripyora ja Polkupyora sijaan saattaisi riittää luokka Kulkuneuvo, jolla voisi olla vaikkapa attribuutit nimi, kayttoonottovuosi ja omistaja. Jukka Harju,
18 Tarvittavien metodien tunnistaminen Jokainen ohjelmassa suoritettava toiminto täytyy toteuttaa jonkin luokan metodina. Metodit nimetään käyttäen verbejä, esimerkiksi haeviitenumero, lasketarkiste. Suunnittelun alkuvaiheessa riittää tunnistaa kunkin luokan tärkeimmät tehtävät. Jukka Harju,
19 Sisällys Ohjelmistosuunnittelusta Tarvittavien luokkien tunnistaminen Luokka-attribuutit ja -metodit Metodien suunnittelu Jukka Harju,
20 Luokka-attribuutit ja -metodit Luokkametodia voidaan kutsua ilman yhtäkään oliota suoraan luokan nimen kautta. Esimerkiksi Javan Math-luokan metodit ovat luokkametodeja: double logaritmi = Math.log(2); Myös attribuutit voivat olla luokka-attribuutteja, tällainen on esimerkiksi Javan System-luokan outattribuutti: System.out.println("Kone on kaapattu Kuubaan"); Suunnittelun eräs vaihe on määritellä tuleeko attribuutin olla oliokohtainen vai luokka-attribuutti. Jukka Harju,
21 static-avainsana Luokka-attribuutit ja luokkametodit määritellään staticavainsanaa käyttäen. static-avainsana määrittelee metodin tai attribuutin luokkakohtaiseksi (ei oliokohtaiseksi). Esimerkiksi. //luokka-attibuutti private static double tuntilaskutus; //luokkametodi public static double laskesumma(int a, int b) { return a + b; } Jukka Harju,
22 Luokka-attribuutti Yleensä jokainen olio attribuutteineen sijaitsee omalla muistialueellaan. Luokka-attribuutista on kuitenkin olemassa vain yksi kopio, joka on yhteinen kaikille olioille. Luokka-attribuutti luodaan kun luokkaan viitataan ensimmäisen kerran. Luokka-attribuutin arvon muutos näkyy kaikille ko. luokan olioille. Jukka Harju,
23 Luokka-attribuutti Luokka-attribuutti ei tule alustaa konstruktorissa, sillä tällöin luokka-attribuutille asetetaan aina oletusarvo uuden olion luonnin yhteydessä. Luokka-attribuutti voidaan alustaa staattisessa alustuslohkossa. Staattinen alustuslohko sijoitetaan luokassa heti attribuuttien jälkeen. Esimerkki. private static final double TUNTILASKUTUS; static { TUNTILASKUTUS = 125.0; } Luokka-attribuutteja käsittelevien get- ja set-metodien tulee olla luokkametodeja. Jukka Harju,
24 Luokkametodi public class Laskin { public static long korotapotenssiin(int kantaluku, int eksponentti) { long tulos = kantaluku; for(int i=0; i < eksponentti; i++) { tulos = tulos * kantaluku; } return tulos; } } Koska metodi potenssi on luokkametodi, voidaan sitä kutsua seuraavasti (vrt. Math-luokka): long tulos = Laskin.korotaPotenssiin(5,3); Jukka Harju,
25 Luokka-attribuutit ja -metodit main-metodi on aina luokkametodi (ns. staattinen metodi). Java-kääntäjä kutsuu sitä luomatta yhtään oliota. Luokkametodeista ei voida viitata oliokohtaisiin attribuutteihin (ilmentymäattribuutteihin), koska käytettävissä ei ole yhtään olioviittausta (luokkametodia ei kutsuta viittausmuuttujan kautta). Luokkametodista voidaan kuitenkin käyttää luokkaattribuutteja ja paikallisia muuttujia. Koodissa luokka-attribuutit kirjoitetaan aina ennen ilmentymäattribuutteja. Jukka Harju,
26 Luokka-attribuutit ja -metodit import java.io.file; import java.io.ioexception; import java.util.scanner; import java.util.logging.level; /** * Laskutus-sovelluksen viitenumerokäsittelymetodit * sisältävä luokkakirjasto. Jukka Juslin, Jukka Harju */ public class Viitenumero { /** * Palauttaa seuraavan käyttämättömän viitenumeron ja * päivittää sen tiedostoon viite.txt. viitenumero */ public static String haeviitenumero() { //selvitetään seuraava käyttämätön viitenumero long seuraava; seuraava = viimeinenkaytettyviitenumero() + 1; //päivitetään viitenumero takaisiin tiedostoon try { TiedostoTyokalut.kirjoita( String.valueOf(seuraava), "viite.txt"); } catch (IOException ex) { TiedostoTyokalut.logger.log( Level.SEVERE, "Viimeisintä viitenumeroa ei pystytty " + "päivittämään viite.txt-tiedostoon"); } int eheys = lasketarkiste(seuraava + ""); String viitenumero = seuraava + "" + eheys; Kirjan Laskutus-ohjelma sisältää Viitenumero-luokan (s.78), jossa on luokkametodi haeviitenumero. Metodi hakee tiedostosta viimeksi käytetyn perusviitenumeron ja selvittää seuraavan käyttämättömän. Metodi myös päivittää viimeisimmän käytetyn viitenumeron. Metodin käyttää apuna saman luokan luokkametodeja viimeinenkaytettyviitenumero ja lasketarkiste sekä TiedostoTyokalut-luokan luokkametodia kirjoita. } return viitenumero; Jukka Harju,
27 this-avainsana this-avainsana viittaa olioon itseensä. Metodin sisällä käytettynä this-avainsana siis viittaa olioon, jolle metodi suoritetaan. Esimerkiksi kutsuttaessa oliolle metodia setetunimi: oppilas1.setetunimi("anna"); oppilas2.setetunimi("jussi"); Ensimmäisessä kutsussa setetunimi-metodissa käytetty this-avainsana viittaa samaan olioon kuin oppilas1-viittausmuuttuja, toisessa samaan olioon kuin oppilas2-viittausmuuttuja. this-avainsana ei ole käytettävissä luokkametodeissa, miksi? Jukka Harju,
28 this-avainsana this-avainsanalla voidaan erottaa attribuutti ja samanniminen paikallinen muuttuja toisistaan. Esimerkiksi setetunimi-metodissa: public void setetunimi(string etunimi) { if(etunimi!= null && etunimi.length() > 0) { this.etunimi = etunimi; } else { System.out.println("Etunimi ei saa olla tyhjä!"); } } Jukka Harju,
29 Sisällys Ohjelmistosuunnittelusta Tarvittavien luokkien tunnistaminen Luokka-attribuutit ja -metodit Metodien suunnitteleminen Jukka Harju,
30 Metodien suunnitteleminen J. G. Brookshear: "Algoritmi on äärellinen joukko täsmällisiä, suoritettavissa olevia ohjeita, jotka ohjaavat päättyvää tehtävän suoritusta." Esimerkiksi viitenumeron tarkisteen laskeminen: Viitenumerossa on aina tarkiste. Se lasketaan seuraavasti: Perusviitetiedoksi valitun luvun (esim. asiakas- tai laskunumeron) numerot kerrotaan oikealta vasemmalle painoilla 7, 3, 1, 7, 3,1. Tulot lasketaan yhteen, ja summa vähennetään seuraavasta täydestä kymmenestä. Erotus on tarkiste, joka merkitään viitenumeron viimeiseksi numeroksi. Jos erotus on 10, tarkiste on 0. ( Jokainen metodi toteuttaa jonkin algoritmin. Algoritmin ei tarvitse olla "monimutkainen". Algoritmi voidaan kirjoittaa suunnitteluvaiheessa pseudokoodina, joka on yhdistelmä Java-lauseita ja suomea. Algoritmi voidaan kuvata myös UML-toimintokaaviona. Jukka Harju,
31 Metodin osittaminen Metodin tulee olla suhteellisen lyhyt looginen kokonaisuus. Näin koodi säilyy helpompana lukea. Pitkä metodi tulee pilkkoa useaan pienempään metodiin. public-tyyppinen metodi voi kutsua private-tyyppisiä (apu)metodeja toiminnon suorittamiseksi. Apumetodit voivat käyttää edelleen toisia apumetodeja. Jukka Harju,
32 Metodin osittaminen Tarkastellaan esimerkkinä kirjan Laskutus-ohjelman Viitenumero-luokan metodia haeviitenumero. Metodi toteutus sisältää seuraavat toiminnot: 1. viimeisimmän käytetyn viitenumeron perusviitteen hakeminen tiedostosta 2. haetun arvon kasvattaminen yhdellä 3. kasvatetun perusviitteen kirjoittaminen takaisin tiedostoon 4. tarkisteen laskeminen perusviitteelle 5. perusviitteen ja tarkisteen yhdistäminen 6. tuloksen palauttaminen Jukka Harju,
33 Metodin osittaminen Kokonaisuudessaan seuraavan käyttämättömän viitenumeron muodostaminen on liian laaja toimenpide suoritettavaksi yhdessä metodissa. Etsitään sopiva tapa jakaa ratkaisu osiin: toteutetaan viimeisimmän käytetyn perusviitteen hakeminen suojatussa viimeinenkaytettyviitenumero-metodissa. toteutetaan perusviitteen päivitys tiedostoon TiedostoTyokalut-luokan metodin kirjoita-avulla. Toteutetaan tarkisteen laskenta suojatussa lasketarkiste-metodissa. Jukka Harju,
34 Metodin osittaminen Katso Viitenumero.java (sivu 78) UML-luokkakaaviossa attribuutin ja metodin näkyvyyden kuvaamisessa käytetään "+"- ja "-"-merkkejä. Julkisia komponentteja merkitään "+"-merkillä. Suojattuja komponentteja merkitään "-"-merkillä. Luokkakohtaisten komponenttien nimet esitetään alleviivattuina. Jukka Harju,
35 Laskutus-ohjelma: UML-luokkakaavio Jukka Harju,
36 Kertaus: Olion välittäminen parametrina Javassa parametrit välitetään aina arvoparametreina. Todellisena parametrina annettu (muuttujan) arvo kopioidaan metodille määritellyn paikallisen parametrimuuttujan alkuarvoksi. Parametrien välityksessä tapahtuu siis sijoittamista. Kun viittaus olioon välitetään parametrina, viittaavat sekä alkuperäinen viittausmuuttuja, että parametrimuuttuja samaan olioon. Jukka Harju,
37 Kertaus: Olion välittäminen parametrina Kun olio välitetään parametrina, näkyy kutsutussa metodissa olion tietosisältöön tehty muutos kutsuneessa metodissa ilman paluuarvon välittämistä. Alkeistietotyyppisille muuttujille tehdyt muutokset eivät näy kutsuneelle metodille, vaan tällöin on aina käytettävä paluuarvon välittämistä. Jukka Harju,
38 Metodin kuormittaminen Metodin kuormittaminen tarkoittaa saman metodinimen käyttämistä useammassa kuin yhdessä metodin määrittelyssä. Kuormitetun metodin tapauksessa pelkkä metodin nimi ei riitä kertomaan mitä metodia halutaan kutsua. Metodin signatuuri tarkoittaa metodin nimen ja parametrien yhdistelmää. Jokaisen (myös kuormitetun) metodin signatuurin täytyy olla uniikki. Kääntäjä päättää parametrien perusteella mitä kuormitetun metodin versiota kutsutaan. Jukka Harju,
39 Metodin kuormittaminen Kutsu kirjoita( jotain, tiedosto.txt ); ohjautuu ao metodeista, ensimmäiselle, miksi? public static void kirjoita(string teksti, String tiedosto) {... } public static void kirjoita(stringbuffer teksti, String tiedosto) {... } Jukka Harju,
40 Metodin kuormittaminen Java-APIsta havaitaan, että esimerkiksi String-luokan println-metodi on kuormitettu: println(string s) println(int i) println(double d) jne. Seuraavilla komennoilla voidaan kutsua näistä kahta eri versiota: System.out.println("Tulostetaan Merkkijono"); System.out.println(summa); Jukka Harju,
41 Metodin kuormittaminen Metodin paluuarvo ei kuulu metodin signatuuriin. Kuormitetut metodit eivät siis voi erota pelkästään paluuarvon tietotyypin osalta. Myös konstruktoreja voidaan kuormittaa: Oletuskonstruktori Erilaiset parametrilliset konstruktorit Jukka Harju,
Olio-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ä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ä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ä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ä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. 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ätiedotLuokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.
1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).
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ä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ä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ä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ä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ä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ätiedotOlio-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ä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ä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ä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ä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ä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ä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ä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ätiedotOhjelmointi 2 / 2010 Välikoe / 26.3
Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään
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ä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ätiedotOsoitin ja viittaus C++:ssa
Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja
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ä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ä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ä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. 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ätiedotJava-API, rajapinnat, poikkeukset, UML,...
Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)
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ä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ä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ä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ä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. 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ä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ätiedotOhjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.
Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä
LisätiedotMetodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet
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 Metodi voi palauttaa alkeistyypin tai olion Tällöin
LisätiedotOhjelmointi 1 / 2009 syksy Tentti / 18.12
Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN
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ä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ä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ä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ä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ätiedotOhjelmoinnin perusteet, syksy 2006
Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen
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ä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ätiedotRutiinin muodostaminen. 2. Rutiinin muodostaminen. specification) Määrittely (specification( Määrittelyn osapuolet. Hyvän ohjelman tunnusmerkit
2. Rutiinin muodostaminen Rutiinin muodostaminen roolit 1. Rutiinin määrittely 2. Sopimuspohjainen ohjelmointi 3. Määrittelyjen kirjoittaminen 4. Erikoistilanteiden hallinta analysointi luokat rutiinit
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
LisätiedotSisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä
Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.
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ä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ä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ätiedotTietokannat II -kurssin harjoitustyö
Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava
LisätiedotLuokan muodostimet (Constructors)
Mikä on muodostin? Luokan muodostimet (Constructors) Millaisia muodostimia on? Oletusmuodostin (Default Constructor) Parametrillinen muodostin Kopiointimuodostin (Copy Constructor) this-muuttuja Miten
LisätiedotJavan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi
1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
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ätiedot12 Mallit (Templates)
12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista
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ä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ä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ätiedotYksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }
Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.
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ä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ätiedotSisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2
26. Tiedostot 26.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja
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ätiedot1. Mitä tehdään ensiksi?
1. Mitä tehdään ensiksi? Antti Jussi i Lakanen Ohjelmointi 1, kevät 2010/ Jyväskylän yliopisto a) Etsitään Googlesta valmis algoritmi b) Mietitään miten itse tehtäisiin sama homma kynällä ja paperilla
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ätiedotJava kahdessa tunnissa. Jyry Suvilehto
Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotJava ja grafiikka. Ville Sundberg 12.12.2007
Java ja grafiikka Ville Sundberg 12.12.2007 What happen Viritetty JPanel Graphics ja Graphics2D ImageIO ja BufferedImage Animaatio ja ajastus Optimoinnista Kehykset import javax.swing.jframe; public class
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ä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ä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ätiedotTietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)
Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä
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ätiedotAlkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)
Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,
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ätiedotLuokkakirjastot. esiintymämetodien käytöstä:
Luokkakirjastot Esimerkkejä Jokainen olio on jotain tyyppiä ja ko. tyyppistä oliota voidaan käsitellä ko. luokan metodeilla Merkkijonojen käsittely: String, StringBuffer, StringBuilder, StringTokenizer,..
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ätiedotOhjelmoinnin perusteet, kurssikoe
Ohjelmoinnin perusteet, kurssikoe 18.6.2014 Kirjoita jokaiseen konseptiin kurssin nimi, kokeen päivämäärä, nimi, TMC-tunnus ja opiskelijanumero tai henkilötunnus. Vastaukset palautetaan tehtäväkohtaisiin
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ä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ä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ätiedotSisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2
6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöteja tulostusvirtojen avulla. Tiedostoja voidaan
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ätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu
LisätiedotTietokannat II -kurssin harjoitustyö
Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................
LisätiedotRinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti
Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi
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ä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ätiedotSisällys. 14. Poikkeukset. Johdanto. Johdanto
Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla
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ätiedotHarjoitus 5 (viikko 48)
Moni tämän harjoituksen tehtävistä liittyy joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Harjoitustyö edistyy sitä paremmin, mitä enemmän tehtäviä ratkaiset. Mikäli tehtävissä on jotain
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ä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ätiedotInformaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006
TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa
Lisätiedot