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 Ohjelmointi - Kai Kivimäki, Seija Lahtinen 2
Tunnus jatkuu Java-kirjain { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, å, ä, ö, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, Å, Ä, Ö, $, _ } Java-numero { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } Esim: int tämä_on_java_tunnus$8; 3 Ohjelmointi - Kai Kivimäki, Seija Lahtinen
Varattu sana Varatuilla sanoilla ilmaistaan ohjelmointikielen lauseita ja muita rakenteita. Java varattuja sanoja ovat mm. if, while, break, for, true, false, null jne Ohjelmointi - Kai Kivimäki, Seija Lahtinen 4
Kommentti Kommentit (selitteet, huomautukset) ovat ohjelmatekstiin (lähdekieliseen ohjelmatiedostoon) kirjoitettuja selityksiä. Ne eivät vaikuta ohjelman toimintaan. Kommenttien tarkoitus on auttaa ohjelmoijaa ymmärtämään ohjelman rakennetta ja toimintaa. Ohjelmointi - Kai Kivimäki, Seija Lahtinen 5
Kommentti jatkuu Javassa kommenttien ilmaisemiseen on kaksi tapaa: // Tässä on kommentti, joka jatkuu rivin loppuun. /* Tämä kommentti puolestaan jatkuu ja jatkuu,...,., kunnes tulee vastaan merkkiyhdistelmä: */ 6 Ohjelmointi - Kai Kivimäki, Seija Lahtinen
Muuttuja (5.4.1) Muuttuja on ohjelman muistipaikka, johon voidaan tallentaa yksittäisiä tietoja. Muuttujalla on nimen lisäksi tyyppi, joka kertoo millaista tietoa voi tallettaa ko. muuttujaan eli muistipaikkaan Muuttuja on määriteltävä ennen kuin sitä voi käyttää. Ohjelmointi - Kai Kivimäki, Seija Lahtinen 7
Muuttujan määrittely (5.4.1) Yksi muuttuja: tai tietotyyppi muuttujan_nimi; tietotyyppi muuttujan_nimi = alkuarvo; Monta muuttujaa: tai tietotyyppi muuttujan_nimi, muuttujan_nimi2, muuttujan_nimi3; Tietotyyppi muuttujan_nimi = alkuarvo, muuttujan_nimi2, muuttujan_nimi3 = alkuarvo; 8 Ohjelmointi - Kai Kivimäki, Seija Lahtinen
tietotyyppi muuttujan_nimi; Muuttujan nimi noudattaa Javan tunnusstandardia Käytämme nimistandardia, jossa muuttujan nimi alkaa pienellä alkukirjaimella yhdistelmänimien jälkiosat isolla alkukirjaimella esim. int lkm; boolean riviloytyi;
tietotyyppi muuttujan_nimi; // alkeistietotyypit Muuttujan tietotyyppi ilmaisee, minkä tyypistä tietoa voidaan sijoittaa muuttujaan Kokonaisluvut: byte, arvoalue: -128 127 ( 8 bittiä) short, arvoalue: -32 768 32 767 (16 bittiä) int, arvoalue: -2 147 483 648 2 147 483 647 (32 bittiä) long, arvoalue: -9 223 372 036 854 775 808 9 23 372 036 854 775 807 (64 bittiä) Desimaaliluvut: double arvoalue: -1.79769 *10 308 1.79769 *10 308 (64 bittiä) float arvoalue: -3.4028234*10 38 3.4028234*10 38 (32 bittiä)
tietotyyppi muuttujan_nimi; // alkeistietotyypit jatkuu Totuusarvot: boolean true tai false Merkki: char yksi merkki (16 bittiä) Esim. boolean löytyi = false; char merkki = K ; int luku = 34; double dluku = 45.67; Ohjelmointi - Kai Kivimäki, Seija Lahtinen 11
tietotyyppi muuttujan_nimi; // viittaustyypit Javan alkeistietotyyppeihin ei kuulu merkkijono-tyyppiä, mutta kieleen on tehty merkkijono-luokka String String-tyyppinen muuttuja on ns. viittausmuuttuja, eli muuttujan arvo on viittaus olioon ( eli muuttujan arvo on olion muistipaikan numero) Esim. String kaupunki = Helsinki ; String nimi = Mika Waltari ; kaupunki: nmi: Helsinki Mika Waltari 12 Ohjelmointi - Kai Kivimäki, Seija Lahtinen
tietotyyppi muuttujan_nimi = alkuarvo; Kun muuttuja saa esittelynsä yhteydessä alkuarvon, sen on oltava samaa tyyppiä kuin muuttujan tyyppi se voi olla literaalivakio, nimetty vakio, lauseke tai alkuarvon saanut muuttuja lausekkeen arvo ratkaistaan ja sijoitetaan muuttujan arvoksi
tietotyyppi muuttujan_nimi = alkuarvo; jatkuu Esim. int luku1 = 2; int luku2 = 4; luku1: luku2: 2 4 int summa = luku1 + luku2; int tulos = (3 + luku2) * 7 23; summa: tulos: 6 26 String mjono = Libretto + + Cavaletto ; mjono: Libretto Cavaletto
tietotyyppi muuttujan_nimi = alkuarvo; // Literaalivakio Literaalivakiolla tarkoitetaan ohjelmatekstiin kirjoitettua vakiota, esim. 1, 3.14, true,..., jolla ei ole nimeä. Vakion perään voidaan kirjoittaa tietty kirjan, jolloin vakion tietotyyppi määrätään arvo tyyppi 34 int 34L long arvo tyyppi arvo tyyppi 23.5 double 23.5f float arvo K i tyyppi char char K Kissa String String Esim. long luku = 99999999945L; Ohjelmointi - Kai Kivimäki, Seija Lahtinen 15
tietotyyppi muuttujan_nimi = alkuarvo;// Nimetty vakio Nimetty vakio on muuttuja, jonka arvo annetaan muuttujan määrittelyn yhteydessä, eikä arvoa voi muuttaa ohjelman aikana. final tietotyyppi MUUTTUJAN_NIMI = arvo; Nimistandardin mukaan vakio kirjoitetaan suurin kirjaimin. Esim. final double PII = 3.14; final int VAKIOLUKU = 12345; double r = 7.8; duoble ympyränala = PII* r * r;
tietotyyppi muuttujan_nimi = alkuarvo; // Lauseke Lauseke muodostuu operandeista ja operaattoreista Lausekkeen operandit voivat olla vakioita, muuttujia, metodikutsuja, jne. Lausekkeen arvon tyyppi riippuu operandien tyypeistä, eli jos lausekkeessa on yksikin desimaalityyppinen arvo lausekkeen tyyppi on desimaalinen Lausekkeen arvon laskemisen järjestystä voidaan vaihtaa sulkeiden avulla
tietotyyppi muuttujan_nimi = alkuarvo; // Lauseke jatkuu Aritmeettiset operaattorit + yhteenlasku - vähennyslasku * kertolasku / jakolasku tai kokonaisjako, kun operandit ovat kokonaislukutyyppiä % jakojäännös, toimii vain operandeilla, jotka ovat kokonaislukutyyppiä
tietotyyppi muuttujan_nimi = alkuarvo; // Lauseke jatkuu Esim. osamäärä: 11 int osamäärä = 34 / 3; int jakojäännös = 34 % 3; double osa = 55 / 7; jakojäännös: 1 osa: 7.0 int a = 45 + 89*0 34; double b = 3.4 * (4+5); a: b: 11 30.6
tietotyyppi muuttujan_nimi = alkuarvo; // Lauseke jatkuu Vertailuoperaattorit == yhtäsuuri <= pienempi tai yhtäsuuri >= suurempi tai yhtäsuuri < pienempi > suurempi!= erisuuri Vertailulausekkeen tulos on looginen arvo true tai false
tietotyyppi muuttujan_nimi = alkuarvo; // Lauseke jatkuu Esim. int luku1 = 7, luku2 = 8; boolean samat = luku1==luku2; luku1: 7 luku2: 8 samat: false boolean erit = luku1!= luku2; erit: true
tietotyyppi muuttujan_nimi = alkuarvo; // Lauseke jatkuu Loogiset operaattorit && ja tai! ei Käytetään vain loogisten operandien yhteydessä Operaation tulon on looginen arvo, true tai false Esim. int vuosi = 2004; boolean karkausvuosi = (vuosi % 400 == 0 ) (vuosi % 4 == 0 && vuosi % 100!= 0)); karkausvuosi: true
tietotyyppi muuttujan_nimi = alkuarvo; // alkuarvon saanut muuttuja Jos muuttujat ovat samaa tietotyyppiä tai vähemmän tilaa vievän muuttujan arvo sijoitetaan enemmän tilaa vievään muuttujaan, järjestelmä tekee tyyppimuunnoksen itse int a = 78; int b = a; double d = a; a: 78 b: 78 d: 78.0 double float long int short byte char merkki = k ; int koodi = merkki; merkki: k koodi: 107
tietotyyppi muuttujan_nimi = alkuarvo; // alkuarvon saanut muuttuja jatkuu Kun sijoituksessa kääntäjä huomaa, että sijoitettavan arvosta voi pudota tietoa, kun se sijoitetaan uuteen muuttujaan, tarvitaan tyyppimuunnos (uusi tyyppi) muuttuja Esim. int a = 89; short b = (short) a; double c = 89.89; int d = (int) c; a: 89 b: 89 c: 89.89 d: 89
Muuttujat ja niiden näkyvyys (5.4.1) Muuttuja määritellään lohkossa ja sitä voidaan käyttää ko. lohkossa ja lohkon sisäkkäisissä lohkoissa Lohko alkaa { ja päättyy }. Vastaa muuttujan määrittelyn jälkeen olevilla riveillä sitä voi käyttää public void aja() { // muuttujien määrittely int luku1 = 4; int luku2 = luku1; double dluku1 = 6.7; double dluku2 = dluku1 + luku1+luku2; //... } Ohjelmointi - Kai Kivimäki, Seija Lahtinen 25
Tiedon merkkipohjainen tulostaminen Tulostuslause: System.out. print printl n ( lauseke ) ; + Tulostuslauseen päättää aina puolipiste. Tulostettavan lausekkeen arvo ratkaistaan ja se tulostetaan merkkimuotoisena kuvaruudulle. Ohjelmointi - Kai Kivimäki 26
Tiedon merkkipohjainen tulostaminen jatkuu System.out.print ( ); ei tee rivinvaihtoa kirjoittamisen jälkeen seuraava tulostus samalle riville edellisen perään System.out.println ( ); tekee rivinvaihdon kirjoittamisen jälkeen seuraava tulostus uuden rivin alkuun Ohjelmointi - Kai Kivimäki 27
Tiedon merkkipohjainen tulostaminen jatkuu a) jokaiselle lausekkeelle oma tulostuslause Esim. double pituus = 172.5; System.out.print ( Pituutesi on ); System.out.print ( pituus ); System.out.println ( m ); tulostuu: Pituutesi on 172.5 m b) yksi tulostuslause, välimerkkinä + -merkki Esim. double pituus = 172.5; System.out.println ( Pituutesi on +Pituus + m ); tulostuu: Pituutesi on 172.5 m Ohjelmointi - Kai Kivimäki 28
Tiedon merkkipohjainen tulostaminen jatkuu Tyhjän rivin tulostaminen System.out.println ( ); // mikäli edellinen tulostuslause on // vaihtanut riviä System.out.println ( ); // mikäli edellinen tulostuslause ei System.out.println ( ) ;//vaihda riviä System.out.print ( \n ); // tulostetaan rivinvaihtomerkki 29 Ohjelmointi - Kai Kivimäki