Muuttujat ja kontrolli Ville Sundberg 14.9.2007
Alkeistyyppi Alin abstraktiotaso josta tarvitsee välittää Yksittäinen, jakamaton tiedonjyvä Tavallaan kaikki alkeistyypit ovat lukuja arvojoukko vaihtelee -40 1.61803399
Muuttuja 42 koko 2.4 Muuttuja on tietynlaisen tiedon varasto, jolla on nimi.
Muuttujan esittely int koko; Muuttujan tyyppi on int eli kokonaisluku. Esittely päättyy puolipisteeseen. Muuttujan nimi on koko.
Sijoitus koko = 42; Muuttujan nimi. Yhtäsuuruusmerkki tarkoittaa tässä saa arvon. Sijoitus päättyy puolipisteeseen. Muuttujaan sijoitettava arvo.
Esittelyn ja sijoituksen voi yhdistää int koko = 42; Ensimmäistä sijoitusta kutsutaan alustamiseksi.
Käyttö int koko = 42; int luku = 42; int koko = luku; Muuttujaa käytetään kuin sen arvoa.
Käyttö public class Kenka { private int koko; public Kenka(int koko) { this.koko = koko; Muuttujan arvoa ei kuitenkaan tarvitse tietää; sitä voi käyttää ikään kuin se olisi jokin arvo.
Alkeistyyppisijoitus kopioi int a; a = 5; int b; b = a; a = 10; Muuttuja a saa arvon 5. Muuttuja b saa arvon 5. Muuttuja a saa arvon 10. Muuttujan b arvo on yhä 5!
Javan alkeistyyppejä int Kokonaisluku, esim. 3 tai -23409. double Desimaaliluku, esim. 2.234439. boolean Totuusarvo, aina joko true tai false. char Merkki, esimerkiksi c tai!. Harvinaisempia: long, float, short, byte
Operaattoreita Aritmeettiset operaattorit Vertailu- ja yhtäsuuruusoperaattorit + - * / % ==!= < <= > >= Loogiset operaattorit Looginen JA Looginen TAI Looginen negaatio &&! Myös muita kuten ++, --,?:, & ja
Muuttujatesti int iso = 200; int pieni = 3; iso = pieni; pieni = 2; pieni = iso + pieni;
Viitemuuttuja Ihminen joku; Siinä missä alkeismuuttujalla on arvo, viitemuuttuja viittaa olioon.
Olion sijoitus ei kopioi! int ika = 20; Ihminen joku = new Ihminen( Pena, ika); Ihminen jokutoinen = joku; joku.synttarit(); jokutoinen.synttarit(); int a = joku.annaika(); int b = jokutoinen.annaika(); System.out.println(a); System.out.println(b); joku ja jokutoinen viittaavat samaan olioon! Penalla on kahdet synttärit......joten tulostus on: 22 22
null joku = null; Null tarkoittaa ei mikään olio. joku.synttarit(); Mitä tapahtuu, jos joku on null?
Java-teatteri esittää: A Slippery Substitution of the Variable Variety
Voiko ikä olla negatiivinen? public Ihminen(int ika) { if (ika > 0) { this.ika = ika;
if-lause public boolean onnegatiivinen(int luku) { if (luku < 0) { return true; else { return false; Jos tämä lauseke on tosi, tehdään näin. Muuten tehdään näin.
Mutta mikä on lauseke? public int gimmefive() { return 5; if (paljonkokello() < 3 && onnalka()) { lounasta(); int kutonen = gimmefive() + 1; Lauseke on mikä tahansa, jolla on arvo ja tyyppi. Metodikutsun arvo on metodin palautusarvo. Siispä muuttujan paikalle kävisi aina myös arvon palauttava metodi. Jos metodi ei palauta mitään, onko metodikutsu lauseke?
Vielä metodien kutsumisesta gimmefive(); Mitä tämä tarkoittaa? Ei oikeastaan mitään! suljeovi(); Entä tämä? int ika = joku.annaika(); System.out. println(joku.annaika()); Jos metodilla on palautusarvo, sillä yleensä täytyy tehdä jotain.
while-lause while (vasyttaa()) { nuku(); Niin kauan kun tämä lauseke on tosi, tehdään näin.
break while (vasyttaa()) { nuku(); if (heratyskello.soi()) { break; Niin kauan kun tämä lauseke on tosi, tehdään näin. break-lause lopettaa silmukan suorituksen. Tarvitaanko tähän välttämättä break?
for-silmukka Alustuslause suoritetaan kerran ennen silmukkaa. Silmukkaa suoritetaan niin kauan kun tämä ehto on tosi. Kasvatuslause suoritetaan joka kierroksen jälkeen. for (int i = 0; i < 5; i++) { System.out.println(i); Silmukan vartalo. Montako kertaa tämä suoritetaan?
Muuttujien näkyvyysalue for (int i = 0; i < 5; i++) { System.out.println(i); Mitä tämä tulostaa? System.out.println(i+1); public int gimmefive() { int vitonen = 5; return 5; public int gimmesix() { return vitonen + 1; Muuttujaa voi käyttää vain siinä lohkossa, jossa se on esitelty. Lohko alkaa aaltosulkeesta ja päättyy sellaiseen. Luokka ja metodi ovat siis lohkoja. Myös metodien sisällä voi olla lohkoja.
Java-tehtävä 1 Kaikkea tarvittavaa ei ole käsitelty Kirjasta on paljon apua! Googlaustaidot kunniaan! Muistakaa myös OLO-tehtävä Harkat maanantaina klo 12