Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 2 Ensimmäiset ohjelmat © Jukka Harju, Jukka Juslin
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1 Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1.0 -lisenssillä. Lisäys edelliseen lisenssiin: Kalvojen muokkaaminen on sallittu vain opettajille, joiden kursseilla käytetään kurssikirjana Tuloksellinen Java-ohjelmointi - tai Java ohjelmointi opas ammattimaiseen osaamiseen -kirjaa. © Jukka Harju, Jukka Juslin
Sisältö Luvussa tarkastellaan ensimmäistä toimivaa Java- ohjelmaa, Eclipsen perusteita ja tietotyyppejä. Ensimmäiset ohjelmat 2.1 Ensimmäinen Java-ohjelma 2.2 Java-ohjelman toteuttaminen Eclipsellä 2.3 Java-API 2.4 Tietotyypit 2.5 Sijoittaminen 2.6 Operaattorit 2.7 Tyyppimuunnokset © Jukka Harju, Jukka Juslin
Missä ollaan? Ensimmäinen Java-ohjelma Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin
Ensimmäinen Java-ohjelma Ensimmäinen ohjelma tulostaa ruudulle tekstin “Kone on kaapattu Kuubaan!”. public class Tulostus { public static void main(String[] args) { System.out.println("Kone on kaapattu Kuubaan!"); } © Jukka Harju, Jukka Juslin
main-metodi Jokainen Java-ohjelma käynnistyy main-metodista. Main-metodi määritellään aina samalla tavalla public static void main(String[] args) { //ohjelmalauseet } Myöhemmin opitaan mitä yo määrittely tarkoittaa. © Jukka Harju, Jukka Juslin
String eli merkkijono "Merkkijono" "Tämä on String-tyyppinen tieto" String on eräs Javan yleisimmistä tietotyypeistä. Tietotyyppi kertoo minkälaista tieto muuttujaan voidaan tallentaa. String-tyyppinen muuttuja voi sisältää merkkijonon. Merkkijono kirjoitetaan Javassa lainausmerkkien sisään. Esimerkkejä: "Merkkijono" "Tämä on String-tyyppinen tieto" Jokainen String-tyyppinen tieto on Javan String-luokan olio. © Jukka Harju, Jukka Juslin
System.out.println ("Kone on kaapattu Kuubaan!"); println-metodi Edellisessä esimerkissä käytetiin println-metodia merkkijonon tulostamiseen. System-luokan attribuutti out edustaa käyttäjän näytölle ohjautuvaa tietovirtaa, johon merkkijono lähetetään. System.out.println ("Kone on kaapattu Kuubaan!"); Kutsuttava metodi Informaatio metodille (parametrit) © Jukka Harju, Jukka Juslin
print-metodi System.out-oliolle on käytettävissä myös toinen tulostusmetodi. print-metodi on toimii muuten kuten println- metodi, mutta print-metodi ei tee tulostuksen loppuun rivinvaihtoa. © Jukka Harju, Jukka Juslin
Merkkijonojen yhdistäminen Merkkijonojen yhdistämisoperaattoria "+" käytetään liittämään merkkijonoja yhteen: "Yksi kahvi " + " ja kaksi maitoa" "+"-operaattoria voidaan myös käyttää liittämään numeroita merkkijonoon: 1 + " kahvi " + " ja " + 2 + " maitoa" © Jukka Harju, Jukka Juslin
Merkkijonojen yhdistäminen "+"-operaattoria käytetään myös lukujen yhteen laskemiseen. Jos ainakin yksi operandi on String-tyyppinen, toimii "+"-operaattori tietoja yhdistäen. Jos kaikki operandit ovat numeerisia, toimii "+"- operaattori tietoja yhteen laskien. "+"-operaattori evaluoidaan vasemmalta oikealle, mutta sulkeita voidaan käyttää muuntelemaan evaluointijärjestystä. © Jukka Harju, Jukka Juslin
Missä ollaan? Ensimmäinen Java-ohjelma Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin
Eclipse Ohjelmoitaessa Eclipsellä tarvitaan aina projekti. Javaa ohjelmoitaessa käytetään Java-projektia (File New Java Project). Projektiin voidaan luoda luokkia (File New Class). Luokat tulee kääntää ennen niiden ajamista Project-valikon toiminnoin. Ajettavan luokan tulee sisältää main-metodi. Ajettavan luokan tulee olla ensimmäisellä ajokerralla aktiivisena editori-ikkunassa, jotta se voidaan ajaa (Run Run As Java Application). © Jukka Harju, Jukka Juslin
Java API Java SE 5:n API sijaitsee osoitteessa http://java.sun.com/j2se/1.5.0/docs/api/ . API on eräs Java-ohjelmoijan tärkeimmistä tietolähteistä, sitä kannattaa opetella käyttämään heti alusta alkaen! © Jukka Harju, Jukka Juslin
Java API API koostuu seuraavista osista. Pakkausluettelo Luokan kuvaus Pakkauksen sisältämät luokat © Jukka Harju, Jukka Juslin
Missä ollaan? Ensimmäinen Java-ohjelma Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin
Tietotyypit Muuttuja on tietokoneen muistipaikan nimi. Muuttuja pitää esitellä määrittelemällä muuttujan nimi ja muuttujan sisältämän tiedon tyyppi eli tietotyyppi. tietotyyppi muuttujan nimi int summa; String teksti; © Jukka Harju, Jukka Juslin
Tietotyyppi int int-tyyppinen muuttuja voi sisältää vain kokonaislukuja. int-tyyppiset arvot ovat aina välillä -2147483648 – 2147483647. Esimerkkejä int-tyyppisistä muuttujista: int laskuri; int lukumaara; Katso myös kirjan esimerkki 2.2. © Jukka Harju, Jukka Juslin
Muuttujan alustus Muuttujien esittelyn yhteydessä muuttujalle voidaan antaa alkuarvo. int summa = 0; Käyttäen erottimena pilkkua, voidaan määritellä useita samaa tietotyyppiä olevia muuttujia. int minimi = 1, maksimi = 100; © Jukka Harju, Jukka Juslin
Tietotyyppi double double-tyyppinen muuttuja sisältää desimaalilukuja. double-tietotyypin arvoalue on todella suuri: 4.9 * 10 ^ 324 - 1.7976931348623157 * 10 ^ 308 Desimaalierottimena käytetään pistettä. Esimerkkejä double-tyyppisistä muuttujista: double palkka = 4500; double matka = 10.5; Katso myös kirjan esimerkki 2.3. © Jukka Harju, Jukka Juslin
Tietotyyppi boolean boolean-tietotyypillä esitetään totuusarvoa: boolean-tyyppisen muuttujan arvo on aina joko true tai false. boolean-tyyppiä tarvitaan erityisesti ehtolausekkeiden yhteydessä (ks. Luku 4). Esimerkki boolean-tyyppisestä muuttujasta: boolean totuusarvo = true; Katso myös kirjan esimerkki 2.4. © Jukka Harju, Jukka Juslin
Tietotyyppi char char-tietotyypillä voidaan esittää yksittäinen merkki. char-tyyppinen tieto kirjoitetaan heittomerkkien sisään. Esimerkkejä char-tyyppisistä muuttujista: char vastaus = 'K'; char numeerinenMerkki = '1'; Katso myös kirjan esimerkki 2.5. © Jukka Harju, Jukka Juslin
Muut alkeistietotyypit Edellisten tietotyyppien lisäksi Javassa on seuraavat alkeistietotyypit. byte: voi sisältää vain kokonaislukuja välillä -128 - 127 short: voi sisältää vain kokonaislukuja välillä -32768 - 32767 long: voi sisältää myös todella suuria kokonaislukuja, arvoalue -9223372036854775808 - 9223372036854775807 float: tarkoitettu pienempien desimaalilukujen käsittelyyn kuin double-tyyppi, arvoalue 1.4 * 10 ^ -45 - 3.4028235 * 10 ^ 38 © Jukka Harju, Jukka Juslin
Missä ollaan? Ensimmäinen Java-ohjelma Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin
Sijoittaminen Sijoitusoperaatio muuttaa muuttujan arvoa. Sijoitusoperaattori on "="-merkki. int arvo = 55; Yhtäsuuruusmerkin oikealla puolella oleva arvo (tai lausekkeen tulos) sijoitetaan vasemmalla puolella olevaan muuttujaan. Muuttujaan voidaan sijoittaa vain muuttujan tietotyypin mukaisia arvoja. © Jukka Harju, Jukka Juslin
final int KENTAN_MAKSIMIPITUUS = 10; Vakiomuuttujat Vakiomuuttuja on muuttuja jolle voidaan suorittaa sijoitusoperaatio vain kerran. Kääntäjä antaa virheilmoituksen, mikäli sijoitusta yritetään useammin kuin kerran. Javassa käytetään final-sanaa määrittelemään muuttuja vakiomuuttujaksi. Vakiomuuttujan nimi kirjoitetaan Javassa isoin kirjaimin ja nimen osat erotellaan alaviivalla. Esimerkki. final int KENTAN_MAKSIMIPITUUS = 10; © Jukka Harju, Jukka Juslin
Missä ollaan? Ensimmäinen Java-ohjelma Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin
Operaattorit Operaattori kertoo minkälainen toimenpide operandeille halutaan suorittaa. Javan aritmeettiset operaattorit suorittavat matematiikasta tuttuja laskutoimituksia. % Jakojäännös / Jakolasku * Kertolasku - Erotus + Summa Operaattori Laskutoimitus © Jukka Harju, Jukka Juslin
Aritmeettiset operaattorit Esimerkkejä aritmeettisten operaattorien käytöstä. int summa = 1 + 2; int jakaja = 3; int osamaara = summa / jakaja; int jakojaannos = summa % jakaja; int tulo = osamaara * jakaja; int erotus = 10 -5 ; Katso myös kirjan esimerkki 2.7. © Jukka Harju, Jukka Juslin
Operaattorit Operaattoreille on olemassa myös lyhennysmerkintöjä. Kaikki lyhennysmerkinnät on lueteltu taulukossa 2.2, yleisimpiä näistä ovat muuttujan arvon kasvatus / vähennys yhdellä: int laskuri = 1; laskuri++; //kasvattaa laskurin arvoa yhdellä laskuri--; //vähentää laskurin arvosta luvun 1 © Jukka Harju, Jukka Juslin
Missä ollaan? Ensimmäinen Java-ohjelma Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin
Tyyppimuunnokset Usein on tarpeen muuntaa tiedon tietotyyppiä. Esimerkki: kokonaislukua (int) voidaan haluta käsitellä desimaalilukuna (double). Tällainen muunnos saadaan aikaan kirjoittamalla haluttu tietotyyppi sijoitettavan arvon eteen sulkuihin: int osoittaja = 3; double tulos = (double) osoittaja / 2; Tyyppimuunnosten kanssa täytyy olla varovainen, sillä niissä saatetaan kadottaa tietoa. © Jukka Harju, Jukka Juslin