Java-kielen perusteet

Koko: px
Aloita esitys sivulta:

Download "Java-kielen perusteet"

Transkriptio

1 2 Java-kielen perusteet Tämän osan sisältö Syntaksi Ohjelma, luokka, metodi Tunnukset, muuttujat ja tyypit esittely, alustaminen, näkyvyyssäännöt Syöttö ja tulostus Metodit määrittely, kutsu, parametrit, paluuarvo Vakiot Laskulausekkeet, operandit Merkkijonot käs. tarkemmin myöhemmin Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Syntaksi On säännöstö, joka määrää ohjelman muodollisen rakenteen rakenneosat kirjoitettava "puolipilkulleen" oikein Ohjelman rakenteen esittämisessä käytetään kielen omia englanninkielisiä varattuja sanoja ohjelmoijan itse keksimiä sanoja, tunnuksia muuttujan tunnus, aliohjelman (metodin) tunnus, operaattoreita (esim. +, -, /, *) ja erottimia (esim. ;,. ja välilyönti) Myös Javan luokkakirjastojen asioilla omat tunnuksensa, mutta ohjelmoija voi näkyvyyssääntöjen puitteissa ottaa nekin tunnukset omaan käyttöönsä (jolloin oletusmerkitys katoaa) Jotta erotetaan helposti, mikä on ohjelmoijan "omaa tuotantoa", kurssin esimerkeissä ohjelmoijan itse nimeämät asiat on kirjoitettu suomeksi ja Javan asiat englanniksi. Ohjelma, luokka, metodi Java-ohjelma koostuu yhdestä tai useammasta luokasta (class) tavallisimmin kukin luokka omassa tiedostossaan luokka ~ käännösmoduuli Luokka koostuu luokan muuttujista ja metodeista (method) ohjelman suoritus alkaa metodista main() vain yhdessä ohjelman luokista main()-metodi Metodi koostuu useista Java-kielisistä lauseista lauseosassa (koottu lohko) metodin toiminnan määrittely - metodin paikallisten muuttujien esittely - peräkkäisyys, valinta, toisto - jonkun muun metodin kutsu metodin parametrit esitellään metodin otsakkeessa - kutsussa parametreille on vietävä arvot metodin mahd. paluuarvo esitellään metodin otsakkeessa - jos ei palauta mitään käytetään sanaa void Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S otsake luokan runko Luokka tiedostossa LuokanNimi.java Metodin palauttaman arvon tyyppi /* Kommentteja ja selityksiä luokasta */ public class LuokanNimi { // luokan muuttujien esittelyt private static int omametodi(double parametri) { // muut luokan metodit Parametrin tyyppi public metodia voi kutsua tämän luokan ulkopuolelta private metodia voi kutsua vain tämän luokan sisältä static metodi sijaitsee muistissa kiinteässä kohdassa (kääntäjä päätti) metodin otsake metodin runko Esimerkki Tämä metodi ei palauta arvoa /* Tämä ohjelma piirtää tähdillä nelikulmion */ public class Nelio { private static void tulostarivi(int pituus){ int lkm = 0; while (lkm < pituus) { System.out.print("*"); lkm = lkm + 1; System.out.println(); Metodi int korkeus, leveys = 10; korkeus = 5; while (korkeus > 0) { tulostarivi(leveys); korkeus = korkeus - 1; Metodi Nelio.java Parametrimuuttuja saa arvon, kun metodia kutsutaan Suoritus alkaa aina main()-metodista Muuttujien esittelyt Metodin kutsu Huomaa koottujen lohkojen käyttö! Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Lue kirjasta s Tunnukset Muuttujat Tyypit Tunnukset (identifiers) Nimiä esim. muuttujille, vakioille, metodeille, kirjastoille Säännöt alkavat kirjaimella, sitten kirjaimia tai numeroita tai _ isot ja pienet kirjaimet ovat eriarvoisia saa käyttää skandinaavisia kirjaimia å, ä, ö, Å, Ä ja Ö ei pituusrajoituksia Esimerkkejä Math luokkakirjaston nimi, jossa matemaattisia metodeja Math.sin() luokassa Math olevan metodin sin kutsu Math.PI vakion pii nimi int kokonaislukutyypin tunnus double liukulukutyypin tunnus Pallo itse nimetyn luokan tunnus nopeus itse nimetyn muuttujan tunnus Huomaa vakiintuneet kuvanala itse nimetyn muuttujan tunnus kirjoitusasut. asetaarvo() itse nimetyn metodin kutsu Noudata! MAX itse nimetyn vakion tunnus ks. Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S

2 Muuttujat (variables) Tyyppi (type) Tietovarastoja erilaisille asioille ("muistilappuja") Muuttujalla tunnus sekä tyyppi tunnus on muuttujan yksilöivä nimi tyyppi määrittelee millaista tietoa muuttujassa voi säilyttää ja millaisia operaatioita muuttujaan voi kohdistaa esim. kokonaislukumuuttujaan voi lisätä kokonaislukuja, mutta ei desimaalilukuja Ennen muuttujan käyttöä kääntäjälle kerrottava nuo molemmat asiat muuttujan esittelyssä String käyttäjännimi; int lkm; On tyypillistä, että muuttujan arvo muuttuu ohjelman suorituksen aikana useaan kertaan (tästä nimitys muuttuja) lkm = 0; lkm = lkm + 1; Sijoituslause: "saa arvokseen" Muuttujan tietotyyppi tai lyhyemmin tyyppi ilmaisee kääntäjälle kuinka paljon muuttuja tarvitsee muistista tilaa minkälaista (-tyyppistä) tietoa sinne voi tallettaa minkälaisia operaatioita siihen voidaan kohdistaa Javan tietotyypit ovat alkeistietotyypit sekä oliotyypit Alkeistietotyypit Tyyppi Selitys Koko Arvoalue (min..max) byte tavu 8 bittiä short lyhyt kokonaisluku 16 b int kokonaisluku 32 b long pitkä kokonaisluku 64 b float lyhyt liukuluku 32 b (tarkkuus n. 6 desimaalia) double liukuluku 64 b (n. 16 desimaalia) char Unicode-merkki 16 b kaikki merkit boolean totuusarvo 8 b tai 16 b true tai false Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Kaikki olio-ohjelmoinnin luokat ovat oliotyyppejä luokka pitää sisällään loogisesti yhteenkuuluvia muuttujia sekä metodit, joilla muuttujien arvoja käsitellään oliot eivät sisälly tämän kurssin aihepiiriin Myös merkkijonotyyppi String on oliotyyppi merkkijono on kokoelma peräkkäisiä merkkejä kukin merkki vie tilaa 16 bittiä pituutta ei ole rajoitettu String käyttäjännimi = Olli Ohjelmoija ; String on myös Javan luokkakirjasto sisältää valmiita metodeja merkkijonojen käsittelemiseksi Merkkijonojen käsittelystä tarkemmin metodeihin ja lauseisiin tutustumisen jälkeen Muuttujan esittely Kaikki ohjelman muuttujat pitää esitellä ennen käyttöä Muuttujan voi esitellä missä tahansa kohdassa koottua lohkoa Esittely on muotoa <muuttujan tyyppi> <muuttujan nimi> int indeksi, lkm, summa; char merkki; String nimi; boolean tulos; näillä kaikilla sama tyyppi Käytä muuttujille aina niiden käyttötarkoitusta kuvaavia nimiä esim. sademäärä, pisteet, palkka ei esim. s, pi, pa Hyvä tapa: kommentoi muuttujan käyttötarkoitus, ellei ilmeisen selvää Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Muuttujien näkyvyys Muuttujia voi määritellä missä tahansa kohdassa lohkoa Pääohjelmametodin tai minkä tahansa muun metodin sisällä määriteltyjä muuttujia kutsutaan paikallisiksi muuttujiksi paikalliset muuttujat ovat käytettävissä omassa lohkossaan määrittelyriviltä alkaen Muuttujia voi esitellä myös metodien ulkopuolella niitä kutsutaan globaaleiksi muuttujiksi (luokkamuuttujiksi) ovat käytettävissä ko. luokkatiedoston kaikissa metodeissa, ja tietyin lisämäärein myös muissa luokkatiedostoissa Eri kootuissa lohkoissa voi olla samannimisiä muuttujia, ja ne ovat toisistaan täysin riippumattomia viittaus kohdistuu aina siinä lohkossa esiteltyyn muuttujaan, jossa lausekin on Muuttujan alustaminen Muuttujalle annettava arvo ennen kuin sitä voi käyttää laskutoimitusten operandina, tulostuksessa jne. arvoa ei saa tutkia ennen kuin se on määritelty kääntäjä huomaa ja tilanteesta saadaan virheilmoitus Muuttujan arvon voi määritellä esittelyn yhteydessä int summa = 0; "muuttuja summa saa arvokseen 0" boolean lopetus = false, onkook; tai erikseen sijoituslauseella int luku; luku = 0; tai muuttujalle voi lukea arvon (näppäimistöltä tai tiedostosta) luku = Oma.lueInt(); Metodin parametri (muuttuja sekin) saa alkuarvon metodia kutsuttaessa Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Lue kirjasta s , Syöttö Tulostus /* Tämä ohjelma tulostaa kuluvan vuoden vuosiluvun. Tämä tässä oleva teksti on monirivinen kommentti. */ public class TulostaVuosi { int tamavuosi = 2012; // muuttujan alustaminen System.out.print("Nyt on vuosi "); System.out.println(tamaVuosi); System.out.println("Nyt on vuosi " + tamavuosi); Nyt on vuosi 2012 Nyt on vuosi 2012 merkkijonojen katenointi Tulostusoperaatiot print seuraava tulostus samalle riville println seuraava tulostus uudelle riville printf muotoiltu tulostus (formatted) arvo ensin merkkijonoksi PS. Kirjan esimerkkikoodit löytyvät T:-levyltä Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S

3 Huom! Scanner Luokka, joka tarjoaa lukemiseen tarvittavat metodit Ei automaattisesti käytettävissä, tuotava käyttöön import-määreellä import java.util.scanner; Ohjelmakoodissa luotava ensin Scanner-tyyppinen (olio)muuttuja Scanner input = new Scanner(System.in); ja sitten voi lukea oletus: näppäimistö int iii = input.nextint(); // kokonaisluvun lukeminen double ddd = input.nextdouble(); // desimaaliluvun lukeminen String sss = input.nextline(); // kokonaisen rivin lukeminen String sana = input.next(); // lue seuraavaan tyhjämerkkiin asti Muut paitsi nextline ohittavat luettavan edessä olevat tyhjämerkit välilyönti, tab ja rivivaihto ovat tyhjämerkkejä Ei osaa käsitellä virheellisesti annettua syötettä, ohjelma "kaatuu" poikkeustilanteiden käsittelytapa opetetaan kurssilla Olio-ohjelmointi Desimaaliluvun syöttömuoto riippuu järjestelmän LOCALE-asetuksista annettava joko muodossa 1.25 tai 1,25 englannin kieli, suomen kieli Ohjelmoinnin perusteet / Auvo Häkkinen / S import java.util.scanner; import java.util.locale; public class Lukemista { String rivi; int eka; double toka; Locale.setDefault(Locale.ENGLISH); // nyt syötettäessä käytetään pistettä Scanner näppis = new Scanner(System.in); System.out.println( Anna nimesi: ); rivi = näppis.next(); System.out.println( Anna kokonaisluku: ); eka = näppis.nextint(); System.out.println( Anna reaaliluku: ); toka = näppis.nextdouble(); System.out.println( Syötit: + eka + ", " + toka + ", " + rivi); Tarkempaa tietoa Scanner-luokasta Java SE 6 API-dokumentaatiosta ks. java.sun.com/javase/6/docs/api Ohjelmoinnin perusteet / Auvo Häkkinen / S Swing Myös Swing-kirjaston JOptionPane-luokan syöttö- ja tulostusdialogeja voi käyttää muuttujien arvojen lukemiseen Kirjastorutiinit saa käyttöön lisäämällä ohjelman alkuun import-lauseen import javax.swing.*; Syöttö String lukustr; int luku; lukustr = JOptionPane.showInputDialog("Anna kokonaisluku"); luku = Integer.parseInt(lukuStr); showinputdialog palauttaa syötteen aina String-muuttujaan se pitää muuttaa halutuksi numeeriseksi tyypiksi metodilla Integer.parseInt() tai Double.parseDouble() import javax.swing.*; public class PyydäJaTulostaKokonaisluku { int luku; String lukustr; PyydäJaTulostaKokonaisluku.java lukustr = JOptionPane.showInputDialog("Anna kokonaisluku"); luku = Integer.parseInt(lukuStr); JOptionPane.showMessageDialog(null,"Luku on " + luku); System.exit(0); Kirja s. 52 Tulostus JOptionPane.showMessageDialog(null, Tulostettava teksti ); 2 Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Oma.java Koska muuttujien arvojen lukeminen näppäimistöltä ei aina ole suoraviivaista (virhetilanteet!), käytämme itsetehdyn luokan Oma metodeja Esimerkki x = Oma.lueInt() d = Oma.lueDouble() c = Oma.lueChar() s = Oma.lueString() kokonaisluvun lukeminen desimaaliluvun lukeminen merkin lukeminen merkkijonon lukeminen int x; System.out.print( Anna kokonaisluku: ); x = Oma.lueInt(); Luokan metodit eivät hyväksy virheellisiä syötteitä Oma-luokka (nimellä Oma.java) löytyy kurssin hakemistosta T:-levyltä Kopioi samaan hakemistoon (pakkaukseen), jossa sitä käyttävät ohjelmat ovat! public class Kysely { String nimi; char sukunimenekakirjain; double paino; Kysely.java System.out.print("Anna etunimesi: "); nimi = Oma.lueString(); System.out.print("Anna sukunimesi 1. kirjain: "); sukunimenekakirjain = Oma.lueChar(); System.out.print("Anna painosi (kg): "); paino = Oma.lueDouble(); System.out.println("Hei " + nimi + " " + sukunimenekakirjain + ". " + "Painosi on " + paino + " kg."); Anna etunimesi: Urho Anna sukunimesi 1. kirjain: K Anna painosi (kg): 85 Hei Urho K. Painosi on 85 kg. kutakin käyttötarkoitusta varten oma muuttuja Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S public class Summa { Summa.java int x; int y; int summa; System.out.println("Anna kaksi kokonaislukua, " + "lasken niiden summan."); System.out.print("Anna 1. luku: "); x = Oma.lueInt(); System.out.print("Anna 2. luku: "); y = Oma.lueInt(); summa = x + y; System.out.println("Lukujen summa on " + summa); System.out.println("Lukujen summa on " + x + y); System.out.println("Lukujen summa on " + (x + y)); Anna kaksi kokonaislukua, lasken niiden summan. Anna 1. luku: 2 Anna 2. luku: 8 Lukujen summa on 10 Lukujen summa on 28 Lukujen summa on 10 katenoi kaksi erillistä lukuarvoa peräkkäin Ohjelmoinnin perusteet / Auvo Häkkinen / S jotta tulkitsee yhteenlaskuksi Muotoiltu tulostus lippu - tulostus kentän vasempaan reunaan + etumerkki näkyviin 0 etunollat näkyviin leveys.tarkkuus pienin mahd. kentän leveys desimaaliosan pituus muoto d decimal f floating-point number e exponential notation g käytä edellisistä lyhyempää muotoa s string of characters c char x unsigned hexadecimal o unsigned octal Toi on pilkku Ohjelmoinnin perusteet / Auvo Häkkinen / S kirja s. 48 System.out.printf("%[lippu][leveys[.tarkkuus]]muoto", argumentti) Huom: argumentit lopussa pilkuin eroteltuna yhtä monta kuin %-muotoilujakin [ ] tarkoittaa syntaksimerkinnöissä valinnaista osaa, ts. osa voi puuttua oletus: oikeaan reunaan

4 import java.util.scanner; public class MuotoiltuTulostus { static Scanner lukija = new Scanner(System.in); System.out.printf("Anna nimesi: "); String nimi = lukija.next(); System.out.printf("Nimesi on %s%n", nimi); Rivinvaihdon (new line) voi antaa joko muodossa %n tai \n System.out.printf("Anna ikäsi: "); int ika = lukija.nextint(); System.out.printf("Olet ensi vuonna %d vuotta\n", ika+1); System.out.printf("Anna painosi (kg): "); double paino = lukija.nextdouble(); System.out.printf("Anna pituutesi metreinä esim 1,78: "); double pituus = lukija.nextdouble(); double painoindeksi = paino / (pituus*pituus); Anna nimesi: Pekka Nimesi on Pekka Anna ikäsi: 25 Olet ensi vuonna 26 vuotta Anna painosi (kg): 87 Anna pituutesi metreinä esim 1,78: 1,86 Pituutesi on 1,86 m Painoindeksisi, Pekka, on 25,15 Antamasi tiedot olivat Nimi Ika Pituus Paino Pekka 25 1,86 87,00 System.out.printf("Pituutesi on %.2f m\n", pituus); System.out.printf("Painoindeksisi, %s, on %.2f", nimi, painoindeksi); System.out.printf("\n\nAntamasi tiedot olivat\n"); System.out.printf("%-20s%6s%8s%8s\n", "Nimi","Ika","Pituus","Paino"); System.out.printf("%-20s%6d%8.2f%8.2f\n", nimi,ika,pituus,paino); Kirja s. 50 Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Lue kirjasta s Metodit Metodit Metodien käyttö tukee asteittain tarkentuvaa suunnittelua tee kustakin loogisesta kokonaisuudesta metodi piilota yksityiskohdat metodin sisälle ohjelmasta tulee helpommin ymmärrettävä ja helpommin testattava Samanlaisina toistuvia ohjelmanosia ei saa kirjoittaa useaan kohtaan, vaan niistä on tehtävä metodeja niitä sitten kutsutaan useasta kohdasta Metodin otsakkeessa esitellään - metodin mahdollisesti saamien parametrien tyypit ja tunnukset - kutsussa nuo muuttujat saavat alkuarvonsa kutsujalta - metodin mahdollisesti palauttaman paluuarvon tyyppi = kutsurajapinnan esittely Metodin runko koostuu kootusta lohkosta - metodin paikallisten muuttujien esittely - peräkkäisyys, valinta, toisto, syöttö, tulostus - jonkun muun metodin kutsu = metodin toiminnan määrittely Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Paluu ja arvon palauttaminen kutsujalle public class MunLuokka { // globaalien muuttujien esittelyt tähän // luokan muut metodit tähän Paluuarvon tyyppi private static int munmetodi(double x){ return(3*x); int tulos = munmetodi(5); Parametrin tyyppi ja sen tunnus otsake runko Metodin kutsu Metodin kutsu Ohjelman suoritus siirtyy metodiin, kun sitä kutsutaan nimellä jos metodilla parametreja, ne asetetaan kutsussa sulkeisiin heti nimen perään sulut pakolliset, vaikkei metodilla olisi parametrejakaan Kutsu siirtää ohjelman kontrollin kutsuttuun metodiin, ja suoritus jatkuu metodin lauseiden suorituksella Kun metodin toiminta päättyy, kontrolli palaa takaisin kutsukohtaan kun suoritettu metodin viimeinen lause, tai kun suoritetaan return()-lause public class MunLuokka { private static int laske() { return 42; private static void tee(int x) { tulos = laske(); public static void main() { tee(5); Käytämme tällä kurssilla vain staattisia metodeja. Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Yksinkertaisimmillaan kutsussa ei välitetä parametreja metodille, eikä se palauta arvoa public class Kukuntaa { Paluuarvon tyyppinä void Parametrilista tyhjä private static void kukkuu() { System.out.println("\n"); kukkuu(); kukkuu(); Jos halutaan, että metodia ei saa kutsua määrittelyluokkansa ulkopuolelta, se esitellään määreellä private Kun metodi määritellään julkiseksi (public), sitä voi kutsua mistä tahansa, myös luokan ulkopuolelta public class Kakikello { public static void kukkuu() { System.out.println("\n"); Kakikello.java public class Kakikellotesti { Kakikello.kukkuu(); Kakikellotesti.java Staattisia metodeja kutsutaan aina luokkaan (ei olioon) liittyen Vain yhdessä samaan ohjelmaan kuuluvista luokista on main()-metodi void = tyhjä, merkityksetön, vapaa, avoin Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S

5 Kutsu onnistuu edellä kuvatulla tavalla, kun luokat sijaitsevat samassa pakkauksessa (eli hakemistossa) Muissa pakkauksissa olevien luokkien staattisten metodien käyttö vaatii import-lauseen esim. jos luokka Oma.java olisi pakkauksessa apurutiinit import apurutiinit.oma; System.out.print("Montakos söit? "); int montako = Oma.lueInt(); Parametrit Jos metodin halutaan toimivan eri kutsukerroilla eri tavoin, sille voi välittää arvoja parametrien avulla Todellisena parametrina voi kutsussa olla mikä tahansa lauseke, jolle voi laskea arvon ennen metodiin siirtymistä public static void kukkuu(int lkm){ while (lkm > 0){ System.out.println(""); lkm = lkm - 1; Kutsuesim: int x=5; kukkuu(2); kukkuu(x); kukkuu(x+2) Parametri on metodin paikallinen muuttuja joka saa alkuarvonsa kutsun yhteydessä muut metodin paikalliset muuttujat sen sijaan alustettava erikseen Paikalliset muuttujat ovat olemassa vain silloin, kun metodia suoritetaan niihin voi viitata vain metodin rungossa (koottu lohko) Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Kuormittaminen Samalle metodinimelle voi kirjoittaa erilaisia versioita, jos metodit eroavat parametrien perusteella toisistaan mekanismia kutsutaan funktion kuormittamiseksi parametrien lukumäärä tai tyypit erilaisia (paluuarvon tyyppien ero ei riitä!) kääntäjä osaa päätellä kutsun parametrien perusteella kumpaa tarkoitetaan public class Kakikello { public static void kukkuu() { System.out.println( Cuckoo"); public static void kukkuu(int lkm){ while (lkm > 0){ System.out.println(""); lkm = lkm - 1; kukkuu(); kukkuu(5); kirja s. 112 Ohjelmoinnin perusteet / Auvo Häkkinen / S Cuckoo Metodin otsakkeessa kuvattuja parametreja kutsutaan muodollisiksi parametreiksi (formal) Kutsussa niiden arvoiksi tulee todellisten (actual) parametrien arvot eli ne saavat alkuarvonsa kutsuttaessa Todellisen parametrin nimi voi olla sama kuin vastaavan muodollisen parametrin, mutta tämä ei ole välttämätöntä metodille välitetään aina vain parametrin arvo Todellisten parametrien ja paluuarvon oltava oikeaa tyyppiä Metodin määrittely Metodin kutsu count = 2; ch = calc(2, count, HELLO ); O private static char calc(int num1, int num2, String msg){ int sum = num1 + num2; char result = msg.charat(sum); return result; Merkkijonon merkit indeksoidaan alkaen numerosta 0 Ohjelmoinnin perusteet / Auvo Häkkinen / S Paluuarvo Metodi voi kutsua myös toista metodia Metodi voi palauttaa tietoa kutsujalleen return-lauseella Jos metodi ei palauta arvoa, paluuarvon tyyppi on void, eikä return-lausetta välttämättä tarvitse käyttää public class Laskuri { private static int summa(int eka, int toka){ int sum; sum = eka + toka; return sum; // palauta arvo kutsujalle int x = 1; int y = 2; int z; z = summa(x,y); // ota paluuarvo vastaan System.out.println("Summa on " + z); eka: 1 toka: 2 sum: args: x: 1 y: 2 z: public class Laskentoa { private static int summa(int eka, int toka){ return eka + toka; // palauta arvo kutsujalle private static void luejalaske() { int eka, toka, summa; System.out.print("Anna luku: "); eka = Oma.lueInt(); System.out.print("Anna toinen luku: "); toka = Oma.lueInt(); summa = summa(eka,toka); // ota paluuarvo vastaan System.out.println("Summa on " + summa); luejalaske(); Näkyvyyssääntöjen nojalla nämä ovat eri muuttujia vaikka nimi onkin sama! Muuttuja summa ja metodin summa() kutsu eroavat sulkujen perusteella Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Vakiot Numeerista tai tekstitietoa, joka ei muutu ohjelman suorituksen aikana Vakiot Paljaat vakiot eli literaalivakiot Numeeriset vakiot esim. 5, 5.0, -5, 12.4 Merkkivakiot esim. '5', 'A', 'a' boolean-vakiot true ja false Merkkijonovakiot esim. "Java" Lue kirjasta s Nimetyt vakiot muuttujia, jotka ohjelmoija määritellyt vakioiksi määreellä final arvoa ei voi muuttaa ohjelmassa, kääntäjä tuottaa virheilmoituksen Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S

6 Numeeriset vakiot int x = 26; // 32-bittinen kokonaisluku long pitka = -110L; // 64-bittinen kokonaisluku int okta = 010; // oktaaliluku (8-järj), alussa 0 int heksa = 0xFF; // heksadesimaaliluku (16-järj) double javadouble1 = 5.678; // 64-bittinen liukuluku float javafloat1 = 5.678f; // 32-bittinen liukuluku double javadouble2 = 1.1e5; // liukuluku eksponenttimuodossa, 1.1 * 10 5 float javafloat2 = 1.1E5f; // lyhyt liukuluku eksponenttimuodossa Liukulukuvakion (desimaalilukuvakion) oletustyyppinä aina double Kun halutaan ilmaista, että vakion tyyppi on float, on käytettävä f-loppuliitettä Kannattaa käyttää aina double-tyyppiä float säästää hieman muistia, mutta sen huonompi tarkkuus voi aiheuttaa helpommin laskuvirheitä Merkkivakiot / Merkkijonovakiot Merkkivakio Tyyppinä char, Unicode-merkkejä Esitetään heittomerkeissä, tai Unicode-koodina '\u9999, missä 9999 on merkikoodin numeerinen arvo char ch = 'K'; ch = '\n'; char ääkirjain = '\u00c4'; Merkkijonovakio Tyyppinä String Lainausmerkkeihin kirjoitettuja Unicode-merkeistä muodostuvia peräkkäisten merkkien kokoelmia String kieli = "Java"; String kirja = "Docendo"; System.out.println("Suomi Finland"); Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Eräitä erikoismerkkejä Merkki Selitys Unicodekoodi \b Askelpalautin (backspace) \u0008 \n Rivinvaihto (newline) \u000a \r Palautus rivin alkuun (carriage return) \u000d \t Sarkain (tabulator) \u0009 \\ Kenoviiva \u005c \' Puolilainaus- eli heittomerkki \u0027 \" Lainausmerkki \u0022 \030 Oktaaliluku Totuusarvot ja null-vakio Totuusarvovakiot Tyyppinä boolean Sallitut arvot true ja false Nollaviite-vakio Käytetään oliomuuttujan arvona silloin, kun oliomuuttuja ei viittaa mihinkään olioon, mutta arvo on silti määritelty Sallittu arvo: null Huomaa, että kenoviivaa käytetään poistamaan sitä seuraavan merkin alkuperäinen Java-syntaksin mukainen merkitys System.out.println("\"Takuulla\",\nsanos Tamppereen likka."); "Takuulla", sanos Tamppereen likka. Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Nimetyt vakiot Ohjelmoijan itse määräämiä, vakiona pysyviä muuttujia, jotka saavat arvonsa esittelynsä yhteydessä Tapana kirjoittaa Esittely ja määrittely final-avainsanan avulla isoilla final int KILPAILIJOIDEN_LUKUMÄÄRÄ = 50; final char LOPETUSMERKKI = 'X'; final String KUSTANTAJA = "Docendo"; Jos vakiomuuttujan arvoa yrittää muuttaa ohjelmassa, kääntäjä antaa ohjelmoijalle virheilmoituksen Luokan sisällä vakioon voi viitata suoraan sen nimellä, luokan ulkopuolella käytettävä luokan nimeä, pistettä ja vakion nimeä (sama sääntö kuin muillekin julkisille tunnuksille) Esim. vakio pii sijaitsee luokassa Math nimellä PI, viittaus nimellä Math.PI public class TulostaEuroVuosi { TulostaEuroVuosi.java final int EURON_KÄYTTÖÖNOTTOVUOSI = 2002; private static void tulostavuosi() { System.out.print ("Eurosta tuli käteisvaluutta vuonna "); System.out.println(EURON_KÄYTTÖÖNOTTOVUOSI); public static void main(string args[]){ tulostavuosi(); Vrt. kirja s. 41 public class Ympyrä { final double OMA_PII = 3.14; double r = 2.5; double ala; Ympyrä.java ala = OMA_PII * r * r; System.out.println("Ympyrän pinta-ala omalla piillä " + ala); ala = Math.PI * r * r; System.out.println("Ympyrän pinta-ala Javan piillä " + ala); kirja s. 47 Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Laskutoimitukset Laskulausekkeet Operaattorit Lue kirjasta s Lähes jokaisessa ohjelmassa lasketaan jotain Laskutoimitukset ovat ohjelmointiteknisesti lausekkeita, aritmeettisia lausekkeita <operandi> <aritmeettinen operaattori> <operandi> Aritmeettinen lauseke sisältää operandeja ja operaattoreita operaattorit (esim. +,-,*,/) kuvaavat matemaattisia laskutoimituksia laskutoimitukset kohdistuvat operandien arvoihin, joita ovat muuttujien ja vakioiden arvot sekä metodien palauttamat arvot Tavallisesti aritmeettisen lausekkeen tulos sijoitetaan jonkun muuttujan arvoksi sijoitusoperaattorilla (=, "saa arvokseen") y = 2 * (x+1); tai sitä käytetään metodin parametrina teejotain(2 * y + z); Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S

7 Aritmeettiset operaattorit Kaksioperandiset (binääriset) operaattorit yhdistävät kaksi operandia lausekkeessa 4 * 5 kertomerkki on binäärinen operaattori 4 ja 5 ovat operandeja Yksioperandiset (unaariset) operaattorit vaativat vain yhden operandin esim. lauseke i++ kasvattaa i:n arvoa yhdellä ++-operaattori kohdistuu muuttujaan (operandiin) i Javan aritmeettiset operaattorit Operaattori - Unaarinen etumerkki Selitys ++, -- Unaarinen kasvatusoperaattori ja vähennysoperaattori +, - Yhteenlasku, vähennyslasku *, /, % Kertolasku, jakolasku, jakojäännös (modulo) +=, -= Lisäysoperaatio, vähennysoperaatio Esimerkkejä int x = 1; // esittele ja alusta ykköseksi x++; // kasvata yhdellä: 2 ++x; // kasvata yhdellä: 3 x--; // vähennä yhdellä: 2 --x; // vähennä yhdellä: 1 x += 1; // kasvata yhdellä: 2 x -= 1; // vähennä yhdellä: 1 x *= 10; // kerro vanha arvo 10:llä ja sijoita uudeksi arvoksi: 10 x /= 2; // jaa arvo 2:llä ja sijoita uudeksi arvoksi: 5 x %= 2; // jaa arvo 2:lla ja sijoita uudeksi arvoksi jakojäännös: 1 *=, /=, %= Kertolaskuoperaatio, jakolaskuoperaatio, jakojäännösoperaatio Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Prefix ja postfix- muodot Jos unaarinen operaattori ++ tai -- on ennen muuttujan tunnusta, operaatio suoritetaan ennen kuin muuttujaa käytetään lausekkeessa Jos unaarinen operaattori ++ tai -- on muuttujan nimen jälkeen, operaatio suoritetaan vasta, kun muuttujaa on käytetty lausekkeessa int x = 0; System.out.println(x++); // tulostaa 0 x on kasvanut arvoon 1 System.out.println(++x); // tulostaa 2 x on kasvanut arvoon 2 Numeeriset tyypit lausekkeissa Kaikki operaatiot kokonaislukujen ja reaalilukujen välillä sallittuja Tulos on tarkin tyyppi, joka mukana laskutoimituksessa, ja tuloksen tyyppi määritetään ennen mahdollista sijoitusta double r = ; int i = 10; double s = i / 4; // Huom: tulokseksi tulee 2, ei 2.5! double s = i / 4.0; // nyt tulokseksi tulee 2.5 double t = r * i; // OK! double on "tarkempi" Tyyppimuunnos (cast) tehdään antamalla kohdetyyppi suluissa, jonka jälkeen tulee muuttuja (tai lauseke): double r = ; int i; i = (int)r; // i:n arvoksi tulee 15 i = (int)(r + 2.5); // i:n arvoksi tulee 17 Numeeristen tyyppien välinen tyyppimuunnos voi kadottaa tietoa (esim. double-tyypin muunnos int-tyypiksi) Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S

Java-kielen perusteet

Java-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ätiedot

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Javan 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ätiedot

Java-kielen perusteet

Java-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ätiedot

Java-kielen perusteita

Java-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ätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa 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ätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (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ätiedot

Metodit. 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 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ätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. 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ätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointitaito (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ätiedot

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen 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ätiedot

Metodien tekeminen Javalla

Metodien 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ätiedot

7. Näytölle tulostaminen 7.1

7. 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ätiedot

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Luokka 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ätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-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ätiedot

Olio-ohjelmointi Javalla

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ätiedot

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if 3 Lauseet Lue kirjasta s. 54-84 Tämän osan sisältö Ehdollinen lause if Looginen lauseke vertailut AND-operaattori &&, & OR-operaattori, NOT-operaattori! Valintalause switch Toistolauseet while for do while

Lisätiedot

1. Omat operaatiot 1.1

1. 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ätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisä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ätiedot

Java-kielen perusteita

Java-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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen

Lisätiedot

Java-kielen perusteet

Java-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ätiedot

Rajapinta (interface)

Rajapinta (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ätiedot

Sisä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. 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ätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 12.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 12.9.2018 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut, merkit, totuusarvot. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

Lisätiedot

6. Muuttujat ja Java 6.1

6. Muuttujat ja Java 6.1 6. Muuttujat ja Java 6.1 Sisällys Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut, merkit, totuusarvot. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. 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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot 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

Taulukot. Taulukon käsittely. Tämän osan sisältö. Esimerkki. Taulukon esittely ja luonti. Taulukon alustaminen. Taulukon koko

Taulukot. Taulukon käsittely. Tämän osan sisältö. Esimerkki. Taulukon esittely ja luonti. Taulukon alustaminen. Taulukon koko 5 Taulukot Tämän osan sisältö Taulukon esittely ja luonti Taulukon alustaminen Taulukon koko Taulukon käsittely indeksointi peräkkäiskäsittely hajakäsittely harva taulukko Taulukon järjestäminen Kaksiulotteinen

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden 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ätiedot

8. Näppäimistöltä lukeminen 8.1

8. 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

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n

Lisätiedot

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

// Tulostetaan double-tyyppiseen muuttujaan hinta tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf(%.1f euros. Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään

Lisätiedot

Tietotyypit ja lausekkeet. Lewis & Loftus & Jukka Juslin 1

Tietotyypit ja lausekkeet. Lewis & Loftus & Jukka Juslin 1 Tietotyypit ja lausekkeet Lewis & Loftus & Jukka Juslin 1 Tietotyypit Perustavaa laatua olevia ohjelmoinnin käsitteitä Luku 2 käsittelee seuraavia: Merkkijonot Primitiivitietotyypit (eli alkeistietotyypit)

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin 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ätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 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ätiedot

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,

Lisätiedot

Taulukoiden käsittely Javalla

Taulukoiden 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ätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. 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ätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (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ätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Taulukot. 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 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ätiedot

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit:

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut, merkit, totuusarvot. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

Lisätiedot

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

Sisä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ätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

Lisätiedot

12. Näppäimistöltä lukeminen 12.1

12. 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ätiedot

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut. boolean- ja char-tyypit. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

Lisätiedot

6. Muuttujat ja Java 6.1

6. Muuttujat ja Java 6.1 6. Muuttujat ja Java 6.1 Sisällys Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut. boolean- ja char-tyypit. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. 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ätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 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ätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisä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ätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Javan perusteita. Janne Käki

Javan 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ätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisä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ätiedot

Harjoitus 2 (viikko 45)

Harjoitus 2 (viikko 45) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista lisätä static-määre operaatioidesi otsikoihin, jotta ohjelmasi kääntyvät. Muista noudattaa hyvän

Lisätiedot

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Vertailulauseet. 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ätiedot

19. Olio-ohjelmointia Javalla 19.1

19. 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ätiedot

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan

Lisätiedot

4. Luokan testaus ja käyttö olion kautta 4.1

4. 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ätiedot

812341A Olio-ohjelmointi, 2016. Olio-ohjelmoinnin peruskäsitteet ja Java-kieli

812341A Olio-ohjelmointi, 2016. Olio-ohjelmoinnin peruskäsitteet ja Java-kieli 812341A Olio-ohjelmointi, 2016 Olio-ohjelmoinnin peruskäsitteet ja Java-kieli Sisältö 1. Java-kieli 2. Luokka 3. Luokkakaaviot 4. Lisää Javaa Javalla 2 Java-kieli n Sun Microsystems tutkimusprojekti 1991

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 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ätiedot

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

// Tulostetaan double-tyyppiseen muuttujaan hinta tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf(%.1f euros. Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään

Lisätiedot

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Sisä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ätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia

Opintojakso 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ätiedot

Osoitin ja viittaus C++:ssa

Osoitin 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ätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 9.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A 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ätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion 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ätiedot

Ohjelmoinnin perusteet, kurssikoe

Ohjelmoinnin 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ätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso 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ätiedot

Ohjelmoinnin perusteet, 1. välikoe

Ohjelmoinnin perusteet, 1. välikoe Ohjelmoinnin perusteet,. välikoe Nimi: Opiskelijanumero:.. 3. 4. Yhteensä Ohje: Ratkaise kaikki tehtävät. Lähdemateriaalia ja tietokonetta ei saa käyttää. Noudata ohjelmointitehtävissä Java-kielen vakiintuneita

Lisätiedot

Ohjelmoinnin perusteet (Java)

Ohjelmoinnin perusteet (Java) Ohjelmoinnin perusteet (Java) HARJOITUKSIA Syksy 2012 / Auvo Häkkinen Jos et ehdi tehdä viikon tehtäviä labra-aikana, tee ne valmiiksi ennen seuraavaa kokoontumista. Tehtävät tulee kirjauttaa tehdyiksi

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Sisä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ätiedot

17. Javan omat luokat 17.1

17. 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ätiedot

Poikkeustenkäsittely

Poikkeustenkä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ätiedot

Harjoitus 5 (viikko 48)

Harjoitus 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ätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisä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ätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

9. Periytyminen Javassa 9.1

9. 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ätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A 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ätiedot

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kää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ätiedot

20. Javan omat luokat 20.1

20. 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 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ätiedot

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Sisä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ätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 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ätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisä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ätiedot

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

on 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ätiedot