Luokkakirjastot. esiintymämetodien käytöstä:
|
|
- Mari Parviainen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Luokkakirjastot Esimerkkejä Jokainen olio on jotain tyyppiä ja ko. tyyppistä oliota voidaan käsitellä ko. luokan metodeilla Merkkijonojen käsittely: String, StringBuffer, StringBuilder, StringTokenizer,.. Matemaattiset funktiot ja vakiot (metodikirjasto): Math perustyyppien kuoriluokat: Integer, Double, satunnaislukujen generointi: Random dynaamiset geneeriset listat: Vector<E>, ArrayList<E>, LinkedList<E>, missä E voi olla mikä tahansa viittaustyyppi pino: Stack<E>, myös luokka LinkedList sisältää pino-operaatiot Arrays ja Collections: staattisia metodeja (esim. lajittelu) hajautustaulu HashMap<K,V>, joukko HashSet<E> (ei vaadita) Luokkakirjastoissa luokkien kuvauksessa on annettu luokan tietokenttien (Field Summary), konstruktorien (Constuctor Summary) ja metodien (Method Summary) kuvaukset. Tietokenttien ja metodien kuvauksessa voi olla määre static, jolloin se on ns. luokkamuuttuja, luokkavakio tai luokkametodi. Näitä käytetään muodossa <luokan nimi>.<kentän nimi tai metodi kutsu>. Jos metodin kuvauksessa ei ole määrettä static, niin kyseessä on ns. esiintymä (tai ilmentymä- tai instanssi-) metodi, joita käytetään muodossa <olio>.<metodin kutsu>. Luokkien String, Integer ja Double oliot eivät ole mutatoituvia, mutta luokkien StringBuffer ja StringBuilder ovat. esiintymämetodien käytöstä: String st = new String( abc ); // tai: String st = abc ; ero? String mjono = st.substring(2,3); mjono = st.replace( a, b ); // StringBuffer/StringBuilder?? mjono = mjono.replace( bb, xx ); StringBuffer sb = new StringBuffer(mjono); // ero Stringiin? String s = sb.substring(2, 3); // ero ed. substring nähden! StringBuffer sbuusi = sb.append("y"); // mitä tapahtuu sb:lle? sb.append(sb); Random r = new Random(); int k = 1+ r.nextint(9); luokkametodien käytöstä: String s = String.valueOf(2.5); double d = Double.parseDouble( 33 ); double x = -2.5; double y = Math.abs(x); double z = Math.random(); Kiinnitä huomiota siihen onko metodi funktio vai proseduuri (tässä tulee myös muistaa, että Javassa funktiota voidaan käyttää lauseen tavoin) mitkä ovat metodin parametrit onko metodissa määre static, joka määrää sen onko kyseessä luokka- vai esiintymämetodi ja siis sen miten sitä käytetään (kutsutaan) 1 2
2 ADT lista 1) Kiinteän mittainen lista kannattaa toteuttaa staattisella taulukolla: esittely on muotoa: <tyyppi> [ ] <muuttujan nimi> esim. int [ ] v; char [ ] c; String [ ] s; Tili [ ] t; taulukon koko (pituus) ilmoitetaan aina luonnin (new) yhteydessä ja sitä ei saa enää sen jälkeen muuttaa. Kuitenkin taulukon komponenttien sisältöä voidaan muuttaa. taulukot ovat olioita ja esitellyt oliot luodaan käyttäen new:tä: v = new int [k]; c = new char [4]; s = new String [n+1]; t = new Tili [n]; usein esittely ja luonti yhdistetään: int [ ] v = new int [k]; char [ ] c = new char [4]; String [ ] s = new String [n+1]; (alkiot viittauksia olioihin) Tili [ ] t = new Tili [n]; (alkiot viittauksia olioihin) taulukon komponenttiin viitataan indeksillä, joka alkaa nollasta: esim. v[0] ja t[k]. Huom. tämä on poikkeava tapa verrattuna muihin olioihin, joita käsitellään aina metodien kautta (paitsi String-oliot, joita voidaan käsitellä ja luoda Javassa kryptisesti). Esim. lista.get(k) käydään läpi toistorakenteella (usein for), jossa taulukon indeksi toimii silmukkalaskurina o indeksiä ei tarvita, kun käytetään for-each -rakennetta: esim. for (int x:taulu) }, kun taulu viittaa int-taulukkoon tai voimme määritellä myös iteraattorin 2) Vaihtelevan mittainen lista kannattaa toteuttaa dynaamisilla rakenteilla (oliokokoelmat) Vector, ArrayList ja LinkedList, joiden alkiot ovat tyyppiä Object (kaikkien oliotyyppien ylityyppi) Java 5.0:sta lähtien kannattaa käyttää niiden geneerisiä vastineita Vector<E>, ArrayList<E> ja LinkedList<E>, joiden alkiot ovat tyyppiä E, joka voi olla mikä tahansa oliotyyppi. Siis tyyppi kiinnitetään esittelyn yhteydessä. Rakenteeseen voidaan tallentaa myös E:n alityypin alkioita. Näillä kaikilla ovat metodit get(i) ja add(e). Vector ja ArrayList: toteutettu staattisella taulukolla. LinkedList: toteutettu linkitettynä rakenteena (ks. TTP I) Tehtävä: Olkoon v dynaaminen lista ArrayList<Integer>. Kirjoita lause, joka poistaa v:n viimeisen alkion. Mitä muuttuu jos alkiotyyppi muuttuu? Entä jos tarkastelemme rakenteita Vector ja LinkedList? Entä jos pitää poistaa taulukon viimeinen komponentti? Esimerkki. Luetaan int-lukuja dynaamiseen listaan. Syöttö lopetetaan, kun ei anneta int-luvun esitystä (esim. tekstiä). Tulostetaan kuinka monta prosenttia listan alkioista on suurempia kuin annettu rajaluku. import java.util.*; public class SuurempiaVector public static void main (String[] args) Vector<Integer> lista = luelista(); if (lista.size()>0) System.out.println(suurempiaKuin(lista,6)); } 3 4
3 /** Luetaan lukuja Vector-rakenteeseen, joka palautetaan. * Kun halutaan lopettaa syöttö, annetaan tekstiä luvun sijasta. */ public static Vector<Integer> luelista() Scanner scan = new Scanner(System.in); // luodaan tyhjä vektori Vector<Integer> v = new Vector<Integer>(); System.out.println("Anna luku (lopuksi tekstiä)"); while (scan.hasnextint()) int luku = scan.nextint(); v.add(new Integer(luku)); // lisäys listan v loppuun System.out.println("Anna seuraava luku "); } // while scan.nextline(); return v; } // luelista Oletetaan, että käyttäjä syöttää luvut 12, 21, 9 ja x. Muistia voidaan havainnollistaa seuraavasti: (a) tilanne, kun 12 on lisätty v:n loppuun, (b) 21 ja (c) 9 on lisätty v:n loppuun. v 12 v v /** Funktio palauttaa kuinka monta prosenttia Integer-olioita * sisältävän listan v alkioista on suurempia kuin parametrina * annettu rajaluku raja. Täydennä. * Alkuehto: lista ei saa olla tyhjä. */ public static double suurempiakuin(vector<integer> v, int raja) int maara = 0; for (int k =0; ; ) if ( ) maara++; } // for return ((double)maara/v.size())*100.0; } // metodi suurempiakuin } // luokan loppu Tehtävä: Muunna eo. hyödyntämään Java 5.0:n for-each rakennetta. Mitä muuttuu, jos hyödynnetään automaattista tyypin muunnosta Integer <-> int? Mitä muuttuu jos käytämme rakennetta ArrayList tai LinkedList? Muutetaan ohjelmaa siten, että lukeminen lopetetaan kun annetaan x ja kaikki muut ei-int-esitykset tulkitaan virheiksi, jolloin luetaan luku uudestaan. Tällöin kannattaa lukea rivi aina merkkijonomuuttujaan, joka muutetaan int-luvuksi parseintmetodilla. Tämä yritys 'kaatuu', jos syötteenä ei anneta kokonaislukua. Kaatuminen voidaan estää käyttämällä Javan poikkeuksia ja try-catch lausetta seuraavalla tavalla: (a) (b) (c) 5 6
4 /** Luetaan lukuja näppäimistöltä listaan Vector, joka palautetaan. * Kun halutaan lopettaa, näppäillään x */ public static Vector<Integer> luelista() Scanner scan = new Scanner(System.in); // luodaan tyhjä vektori Vector<Integer> v = new Vector<Integer>(); boolean luetaan = true; while (luetaan) System.out.println("\nAnna seuraava luku (lopuksi x)"); String rivi = scan.nextline(); if (rivi.equals("x")) luetaan = false; // lopeta while-silmukka else try int luku=integer.parseint(rivi); } // try catch (NumberFormatException e) System.out.println("Et antanut kokonaislukua etkä x:ää\n"); continue; // aloita while-silmukkaa uudestaan } // catch } // else } // while return v; } // luelista // nyt muuttujassa rivi on kokonaisluvun esitys v.add(new Integer(rivi)); // käykö v.add(rivi)? Voiko kirjoittaa v.add(luku); Tehtävät 6 ja 7 (s. 88). Tästä puuttuvat ulkoiset kuvaukset. Tyypin käsite on tässä erittäin tärkeä ja mitä erityyppisille alkiolle voi tehdä. Alkuehdot? Täydennä. import java.util.*; public class MerkkijonoTaulukoksiJaPainvastoin public static void main (String[ ] args) int[] v = merkkijonotaulukoksi(" "); for (int k = 0; k < v.length; k++) System.out.println(v[k]); String s = taulukkomerkkijonoksi(v); System.out.println(s); } // main public static int[] merkkijonotaulukoksi(string syöte) StringTokenizer stok = new StringTokenizer(syöte); int maara = stok.counttokens(); int[] v = new int [maara]; for (int k = 0; k < maara; k++) v[k] = ; return v; } // merkkijonotaulukoksi public static String taulukkomerkkijonoksi(int[] v) String tulos =""; for (int k = 0; k < v.length; k++) tulos = ; return tulos.trim(); } // taulukkomerkkijonoksi } // class 7 8
5 String ei ole mutatoituva, joten katenaation + (eli liitä loppuun) yhteydessä luodaan aina uusi olio (ja roskaa syntyy). Sen vuoksi usein käytetäänkin luokkaa StringBuffer, jonka alkiot ovat mutatoituvia. Alla on tällainen ratkaisu (täydennä): public static String taulukkomerkkijonoksibuffer(int[] v) StringBuffer tulos = new StringBuffer(""); for (int k = 0; k < v.length; k++) merkkijonotaulukoksi käyttämällä luokan String metodia split menee näin näppärästi: public static int[] merkkijonotaulukoksi(string syöte) String[] stok = syöte.split(" +"); int[] v = new int[stok.length]; for (int k =0; k< stok.length; k++) v[k] = Integer.parseInt(stok[k]); return v; } } return tulos.tostring().trim(); Split vaatii argumentikseen ns. säännöllisen lausekkeen, jonka yleinen muoto kuvataan luokkakirjastossa metodin split yhteydessä. Edellä append on luokan StringBuffer esiintymämetodi (muutosmetodi), jolloin sen kutsu kohdistetaan olioon. Tällöin käsitellään koko ajan samaa olioita (johon muuttuja tulos viittaa), jonka sisältö muuttuu (mutatoituu). Huomaa, että append on 'raskaasti' ylikuormitettu ja sillä voi siis olla parametrina myös luku, jolloin metodissa append ko. luku muutetaan ensin merkkijonotyyppiseksi ja sen jälkeen suoritetaan katenointi. Lopuksi tulos tulee muuntaa vielä String-tyyppiseksi luokan StringBuffer metodilla tostring. trim- poistaa alku- ja lopputyhjät. Splitin argumenttina välilyönnin perässä oleva + tarkoittaa: yksi tai useampi. Eli tässä tapauksessa jako tehdään aina kun merkkijonossa on yksi tai useampi välilyönti peräkkäin ja nämä välilyönnit eivät tule mukaan. Miten metodia merkkijonotaulukoksi voi kutsua jostain muusta luokasta, joka sijaitsee samassa hakemistossa? Entä jos haluammekin merkkijonosta dynaamisen listan LinkedList <Integer>? Onko jossain luokassa metodeja, joilla vaaditut muunnokset voitaisiin suorittaa suoraan? 9 10
6 Luokista Javassa luokan avulla tehdään mm.: 1. uusi tietotyyppi, jonka yhteydessä määritellään karakterisoivat tiedot (tietokentät eli attribuutit) ja metodit, joilla luokan mukaisia alkioita (olioita) tulee käsitellä. 2. metodi- eli aliohjelmakirjasto 3. pääohjelma (sisältää main-metodin) Kohdan 2 luokista ei luoda esiintymiä (olioita) ja niiden metodit ja tietokentät (luokan alussa) ovat määreeltään static. Seuraavassa käsitellään vain Kohdan 1 mukaisia luokkia, jotka koostuvat: tiedoista, joilla luokan mukaiset alkiot karakterisoidaan, näitä sanotaan luokan tietokentiksi tai luokan muuttujiksi (luokan alussa olevat muuttujien ja vakioiden esittelyt) konstruktoreista, jolla ko. luokan mukaisen olion tietokentät alustetaan olion luonnin yhteydessä. Konstruktorin nimi=luokan nimi ja sillä ei ole tulostyyppiä lainkaan ja sillä on yleensä parametri kutakin luokan tietokenttää kohti. metodeista, joilla ko. luokan mukaisia alkioita käsitellään public class <luokan nimi> <luokan tietokentät> <luokan konstruktorit> <luokan muut metodit> } Luokat ja niiden havaitseminen (ei ole oppaassa) Luokkia löydetään usein etsimällä sovellusalueen kuvauksesta substantiiveja, joiden voidaan ajatella olevan olioita, joilla on identiteetti, tietty tila ja käyttäytyminen. Luokka on tietotyyppi, joka on staattinen kuvaus ajonaikana luotavista olioista. Luokan tietokentät ovat luokan karakterisoivia tietoja, jotka ovat yleensä luokkaan liittyviä substantiiveja tai adjektiiveja. Luokan metodit löydetään etsimällä sovellusalueeseen liittyviä verbejä. Metodit sijoitetaan lähinnä sopivimpaan luokkaan. Sovelluskohde mallinnetaan luokkien ja niiden välisten rakenteellisten suhteiden kautta (perintä!). Samasta asiasta voi olla eri näkökulmia (esim. auto: käyttäjä vs. korjaaja). Laajaan ohjelmakokonaisuuteen kuuluu useita luokkia, joiden tunnistaminen ja luokkien välisten suhteiden määrääminen on usein vaikeata ja joudutaan tekemään usein uudestaan. Tärkeänä motivaationa on myös luokkien ja metodien uudelleenkäyttö: samaa ohjelmakoodin pätkää ei tulisi kirjoittaa moneen kertaan. Seuraavalla jaksolla TJM tarkastellaan oliopohjaista mallinnusta, jossa käytetään UML-mallinnuskieltä
7 Tunnuksien nimeämiskäytäntö luokat nimetään yleisesti substantiiveilla ja niiden nimen ensimmäinen kirjain kirjoitetaan isolla kirjaimella kenttien nimet ovat yleensä substantiiveja (totuusarvot voivat olla myös adjektiiveja tai kysymyksiä) ja niiden ensimmäinen kirjain kirjoitetaan pienellä, mutta vakioiden nimet kirjoitetaan kokonaan isoilla metodien nimet ovat yleensä verbimuotoisia, josta näkyy kohdekenttä ja ne aloitetaan pienellä kirjaimella: getnimi(), setnimi (String uusinimi) jos tunnus koostuu useammasta sanasta, toisesta sanasta eteenpäin kaikki sanat kirjoitetaan isolla alkukirjaimella yhteen ilman alaviivoja tunnuksien tulee olla kuvaavia ja ytimekkäitä Olio-ohjelmointiin liittyvät tärkeät käsitteet: Luokan tietokenttä voi olla: luokkamuuttuja, luokkavakio, esiintymämuuttuja Luokan metodi voi olla: luokkametodi, esiintymämetodi, konstruktori (alustaja) Näiden osoittamiseen ohjelmointikielessä on tietty syntaksi! Luokan tietokentät: luokkamuuttuja/esiintymämuuttuja: Jos tietokentän arvo voi olla eri luokan eri oliolla, niin tällaista muuttujaa kutsutaan esiintymämuuttujaksi (oliokohtainen) Luokalla voi olla tietokenttä, joiden arvo on yhteinen kaikilla luokan olioilla. Tällaista kutsutaan luokkamuuttujaksi (se on siis luokkakohtainen). Luokan metodit: luokkametodi/esiintymämetodi: Tyypillisesti luokassa määritellään metodeja, joilla voidaan käsitellä ko. luokan mukaisia olioita kohdistamalla ko. metodin kutsu ko. luokan olioon. Tällaisia metodeja kutsutaan esiintymämetodeiksi, koska niitä voidaan kohdistaa vain luokan mukaiseen esiintymään, olioon. Joskus taas halutaan luokassa määritellä metodi, jota voidaan käyttää ei-olio-ohjelmoinnin tavoin, jolloin metodi ei vaadi luokan esiintymää eikä sitä kohdisteta olioon. Tällaista metodia kutsutaan luokkametodiksi. Miten tämä ilmaistaan Javassa: jos kyseessä on luokkamuuttuja tai metodi, kirjoitetaan sen määreeksi static. Jos määre static puuttuu, tarkoittaa se että kyseessä on esiintymämuuttuja tai metodi. Siis: aina kun otamme luokkaan mukaan tietokentän tai metodin, niin meidän tulee miettiä mihin yllä olevista ryhmistä se kuuluu eli sitä kirjoitetaanko sen määreeksi static vai eikö
8 Näkyvyysmääreet Javassa Tietokentälle ja metodille asetetaan yleensä näkyvyysmääre: public/private/protected/ joka määrää ko. muuttujan tai metodin näkyvyyden ja käytettävyyden muissa luokissa. Näkyvyysalueena on ns. pakkaus eli paketti (package). Jos sitä ei ole luokkaan määritelty, niin se on hakemisto, jossa ko. luokka on. public: julkinen, käyttö sallittu kaikissa luokissa (milloin import?) private: käyttö sallittu vain luokan itsensä sisällä protected: voi käyttää aliluokissa sekä luokissa, jotka ovat samassa pakkauksessa määre puuttuu: voidaan käyttää niissä luokissa, jotka ovat samassa pakkauksessa. Vaatimus tällä kurssilla: tietokentät varustetaan määreellä private metodit public Huom. Luokan kirjoittaja määrää sen, mitkä tiedot näkyvät ulospäin, ja mitä luokan mukaisille olioille saa tehdä: mitä tietoja voi katsoa (havainnointimetodit) ja mitä tietoja saa muuttaa (muutosmetodit) ja minkälaiset muutokset ovat sallittuja olion pitää olla eheässä tilassa eli tietokentillä pitää olla aina lailliset arvot. Tämä pitää huomioida kirjoitettaessa muutosmetodeja. Kyseessä on siis mallinnuksen lisäksi systeemin suunnitteluperiaate. Esim. luokassa Tili on estetty se, että luokan käyttäjä (asiakas) voisi asettaa saldoksi tietyn summan (vain nosto ja talletus on sallittu). Metodien looginen ryhmittely luokassa Esiintymämetodit jaetaan vielä toiminnallisuuden mukaan Konstruktorit (alustajat) Havainnointimetodeihin (olion tila ei muutu) Muutosmetodeihin (olion tila muuttuu) Muut metodit (yleensä apumetodien luonteisia) Tätä ei ilmaista millään määreellä itse ohjelmakoodissa, vaan tämä on looginen jako, joka ilmoitetaan esittämällä metodit ryhmittäin ja varustamalla ryhmät kommenteilla
9 Olioiden luonti Luokan olion esiintymä eli instanssi luodaan käyttäen newlauseketta, jossa on aina mukana konstruktorin kutsu: new <konstruktorin nimi> ( <mahd. parametrit>) Konstruktorin nimi = sen luokan nimi, jossa konstruktori on määritelty Lausekkeen arvo on viittaus olioon, joka asetetaan yleensä muuttujan arvoksi Konstruktoria voi kutsua vain new:n kanssa ja kutsun jälkeen tulisi tietokentillä olla aina haluttu arvo. Näin ollen konstruktori ei luo oliota, vaan alustaa olion tietyt (useimmiten kaikki) tietokentät. Nämä arvot ovat konstruktorin parametreja. Luonnin suorittaa new. Alustamattomilla tietokentillä on Javassa oletusarvot. Tyypillisesti konstruktoreita kirjoitetaan useita (ylikuormitus). Ellemme ole kirjoittaneet luokkaan yhtään kostruktoria, käytössä on silti parametriton oletuskonstruktori, joka asettaa tietokentille oletusarvot (konstruktoria ei siis tarvitse kirjoittaa luokaan lainkaan, ellei tietokentille haluta antaa arvoja). JavaBeans suosittelee että tällainen parametriton konstruktori kirjoitetaan aina luokkaan. Miksiköhän? Kuinka luokan tietokenttiin ja metodeihin voidaan viitata (anna esimerkit): viittaus sen luokan sisällä, jossa tietokenttä tai metodi esitellään: ko. luokan metodeissa voidaan kaikkiin luokan tietokenttiin ja metodeihin viitata muodossa <olio>.<metodin kutsu tai tietokentän nimi> Jos tarkastellaan kohdeolioita (kuten yleensä) tulee <olio>:n tilalla olla this tai sen voi jättää pois. luokan tietokenttien ja metodien käyttö muissa luokissa: 1. jos näkyvyys on private: ei voi viitata suoraan. Tietokenttiä voidaan käsitellä luokassa olevien julkisten (public) havainnointi- ja muutosmetodien kautta 2. jos näkyvyys on public (eli kyseessä on julkinen tietokenttä tai metodi): jos määreenä ei ole static, niin kyseessä on julkinen esiintymämuuttuja tai esiintymämetodi (kohdistetaan olioon): viitataan muodossa <olio>.<metodin kutsu tai tietokentän nimi> Julkisten tietokenttien käyttö ei noudata kapselointiperiaatetta. jos määreenä on static, niin kyseessä on julkinen luokkamuuttuja (tai vakio) tai luokkametodi, jonka kutsu kohdistetaan luokkaan: viitataan muodossa <luokan nimi, jossa metodi tai tietokenttä on määritelty>. <metodin kutsu tai tietokentän nimi> 17 18
10 Käydään läpi opiskeluoppaan luokka Tili ja siihen liittyvät esimerkit. Luokat Pankki ja PankkiKoe Tilit tallennetaan ArrayList<Tili>-rakenteeseen, jonka jokaisen komponentin arvo on luokan Tili olio (tarkemmin: viittaus Tiliolioon) Kun pankki luodaan (perustetaan), pankilla ei ole tilejä lainkaan. Luokkaan Pankki tehdään metodi lisäätili, jolla voidaan lisätä parametrina annettu Tili-olio ArrayList-rakenteen tilit loppuun. Luokalla PankkiKoe voidaan testata luokkien Tili ja Pankki toimivuutta. Käydään läpi opiskeluoppaan luokka Pankki. Mitä metodeja voisi vielä olla? Huomaa, että luetaan aina rivi kerrallaan merkkijonomuuttujaan ja tehdään tarvittaessa tyypin muunnos. Tämä on hyvä tapa. Miksi? Metodi kaatuu, jos tieto syötetään väärin. Mikä pelastukseksi? Miksi luokassa on metodi lisäätili, vaikka se sisältää vain yhden lauseen? Suurinta saldoa haettaessa hyvä alkuarvo on 0.0 (tai neg.), mutta tämä voidaan ratkaista myös toisin. Miten? Käydään läpi opiskeluoppaan luokka PankkiKoe ja piirretään kuva luokan Pankki oliosta pankki Luokassa PankkiKoe ei saa näkyä se millaiseen tietorakenteeseen tilitiedot on tallennettu (tässä ArrayList <Tili>). Tällöin luokassa Pankki voidaan esim. muuttaa tilitietojen tallennusrakennetta ja luokan Pankki käyttäjän ei tarvitse tietää siitä mitään. Olio-ohjelmoinnin periaatteita: s. 71 Perintä: katsotaan Viikon 10 teksti. Käydään läpi opiskeluoppaan s luokka ShekkiTili, jossa korkoprosentti on aina 0.0, ja siihen liittyvät esimerkit. Jos aikaa jää: Tehdään yhdessä taululle s. 88 tehtävä 4 ja ehkä myös 3 Rajapintaluokka: s Metodi compareto luokkaan Tili? 19 20
11 21 22
12 23 24
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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Standardi- ja tietorakenneluokkia Standardi- ja tietorakenneluokkia Javan API, ArrayList Ohjelmointirajapinta (Application Programming Interface, API)
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ä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ä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ätiedot1. OPINTOJAKSON TAVOITTEET, SISÄLTÖ JA ESITIEDOT... 4 2. MATERIAALIT JA OHJELMISTOT... 5
1. OPINTOJAKSON TAVOITTEET, SISÄLTÖ JA ESITIEDOT... 4 2. MATERIAALIT JA OHJELMISTOT... 5 3. SUORITUSTAVAT... 5 3.1 Tentistä... 5 3.2 Tietokonetyöstä... 6 4. OPISKELUN ETENEMINEN... 6 VIIKKO 3... 8 Luokka
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ä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ä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ä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ä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ä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. 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ä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ä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ä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ä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ä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ätiedotOhjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen
Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka
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ä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ä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ä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ätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
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ä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ätiedot1. OPINTOJAKSON TAVOITTEET, SISÄLTÖ JA ESITIEDOT... 4 2. MATERIAALIT JA OHJELMISTOT... 5
1. OPINTOJAKSON TAVOITTEET, SISÄLTÖ JA ESITIEDOT... 4 2. MATERIAALIT JA OHJELMISTOT... 5 3. SUORITUSTAVAT... 5 3.1 Tentistä... 5 3.2 Tietokonetyöstä... 6 4. OPISKELUN ETENEMINEN... 6 VIIKKO 4... 8 Luokka
LisätiedotJava-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
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ä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ä 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ä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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
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ä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ätiedotJava-kielen perusteita
Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa
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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ätiedotTietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla
Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään
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. 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ä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ätiedot14. Poikkeukset 14.1
14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
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ä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ätiedot815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,
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ä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ä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ä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ä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ä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ä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ä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. 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 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ätiedotImperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi
Imperatiivisen ohjelmoinnin peruskäsitteet muuttuja muuttujissa oleva data voi olla yksinkertaista eli primitiivistä (esim. luvut ja merkit) tai rakenteista jolloin puhutaan tietorakenteista. puhuttaessa
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ä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ä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ätiedotTaulukoiden käsittely Javalla
1 Taulukoiden käsittely Javalla Mikä taulukko on? Taulukon syntaksi Merkkijonotaulukko Lukutaulukko Taulukon kopiointi 1 Mikä taulukko on? Taulukko on rakenne, minne saadaan talteen usea saman tyyppinen
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ätiedotJava-kielen perusteita
Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja
LisätiedotOhjelmointi 2, välikoe
Ohjelmointi 2, välikoe 21.3.2014 Vastaa neljään tehtävään kuudesta siten, että jokainen tehtävä tulee omalle konseptilleen. Mikäli vastaat useampaan kuin neljään tehtävään, pisteiden laskussa huomioidaan
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Poikkeukset Poikkeuksella tarkoitetaan yllättävää ajonaikaista tilannetta, joka
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ä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ätiedot12. Näppäimistöltä lukeminen 12.1
12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.
LisätiedotMitä poikkeuskäsittely tarkoittaa?
Poikkeuskäsittely Mitä poikkeuskäsittely tarkoittaa? Poikkeuskäsittelyluokkien hierakkia Poikkeuksen sieppaaminen Mihin järjestykseen try-catch-lauseen ExceptionType-poikkeukset laitetaan? Poikkeuksen
LisätiedotOhjelmointi 1 Taulukot ja merkkijonot
Ohjelmointi 1 Taulukot ja merkkijonot Jussi Pohjolainen TAMK Tieto- ja viestintäteknologia Johdanto taulukkoon Jos ohjelmassa käytössä ainoastaan perinteisiä (yksinkertaisia) muuttujia, ohjelmien teko
Lisätiedot7/20: Paketti kasassa ensimmäistä kertaa
Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
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ätiedot14. Hyvä ohjelmointitapa 14.1
14. Hyvä ohjelmointitapa 14.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen; ohjelmaa voidaan käyttää ja ylläpitää jopa vuosikymmeniä. Jotta koodin muuttaminen on mahdollista, sen
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ä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ätiedot