Tuloksellinen Javaohjelmointi Luku 2 Ensimmiset ohjelmat Jukka Harju

  • Slides: 31
Download presentation
Tuloksellinen Java-ohjelmointi Luku 2 Ensimmäiset ohjelmat © Jukka Harju, Jukka Juslin 2007

Tuloksellinen Java-ohjelmointi Luku 2 Ensimmäiset ohjelmat © Jukka Harju, Jukka Juslin 2007

Sisältö Tuloksellinen Java-ohjelmointi • Luvussa tarkastellaan ensimmäistä toimivaa Javaohjelmaa, Eclipsen perusteita ja tietotyyppejä. 2

Sisältö Tuloksellinen Java-ohjelmointi • Luvussa tarkastellaan ensimmäistä toimivaa Javaohjelmaa, Eclipsen perusteita ja tietotyyppejä. 2 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 2007 2

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset ©

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin 2007 3

Ensimmäinen Java-ohjelma Tuloksellinen Java-ohjelmointi • Ensimmäinen ohjelma tulostaa ruudulle tekstin “Kone on kaapattu Kuubaan!”.

Ensimmäinen Java-ohjelma Tuloksellinen Java-ohjelmointi • 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 2007 4

main-metodi Tuloksellinen Java-ohjelmointi • Jokainen Java-ohjelma käynnistyy main-metodista. • Main-metodi määritellään aina samalla tavalla

main-metodi Tuloksellinen Java-ohjelmointi • 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 2007 5

String eli merkkijono Tuloksellinen Java-ohjelmointi • String on eräs Javan yleisimmistä tietotyypeistä. • Tietotyyppi

String eli merkkijono Tuloksellinen Java-ohjelmointi • 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 2007 6

println-metodi Tuloksellinen Java-ohjelmointi • Edellisessä esimerkissä käytetiin println-metodia merkkijonon tulostamiseen. • System-luokan attribuutti out

println-metodi Tuloksellinen Java-ohjelmointi • 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 2007 7

print-metodi Tuloksellinen Java-ohjelmointi • System. out-oliolle on käytettävissä myös toinen tulostusmetodi. • print-metodi on

print-metodi Tuloksellinen Java-ohjelmointi • System. out-oliolle on käytettävissä myös toinen tulostusmetodi. • print-metodi on toimii muuten kuten printlnmetodi, mutta print-metodi ei tee tulostuksen loppuun rivinvaihtoa. © Jukka Harju, Jukka Juslin 2007 8

Merkkijonojen yhdistäminen Tuloksellinen Java-ohjelmointi • Merkkijonojen yhdistämisoperaattoria "+" käytetään liittämään merkkijonoja yhteen: "Yksi kahvi

Merkkijonojen yhdistäminen Tuloksellinen Java-ohjelmointi • 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 2007 9

Merkkijonojen yhdistäminen Tuloksellinen Java-ohjelmointi • "+"-operaattoria käytetään myös lukujen yhteen laskemiseen. • Jos ainakin

Merkkijonojen yhdistäminen Tuloksellinen Java-ohjelmointi • "+"-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 2007 10

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset ©

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin 2007 11

Eclipse Tuloksellinen Java-ohjelmointi • Ohjelmoitaessa Eclipsellä tarvitaan aina projekti. • Javaa ohjelmoitaessa käytetään Java-projektia

Eclipse Tuloksellinen Java-ohjelmointi • 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 As Java Application). © Jukka Harju, Jukka Juslin 2007 12

Java API Tuloksellinen Java-ohjelmointi • Java SE 5: n API sijaitsee osoitteessa http: //java.

Java API Tuloksellinen Java-ohjelmointi • Java SE 5: n API sijaitsee osoitteessa http: //java. sun. com/j 2 se/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 2007 13

Java API Tuloksellinen Java-ohjelmointi • API koostuu seuraavista osista. Pakkausluettelo Luokan kuvaus Pakkauksen sisältämät

Java API Tuloksellinen Java-ohjelmointi • API koostuu seuraavista osista. Pakkausluettelo Luokan kuvaus Pakkauksen sisältämät luokat © Jukka Harju, Jukka Juslin 2007 14

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset ©

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin 2007 15

Tietotyypit Tuloksellinen Java-ohjelmointi • Muuttuja on tietokoneen muistipaikan nimi. • Muuttuja pitää esitellä määrittelemällä

Tietotyypit Tuloksellinen Java-ohjelmointi • Muuttuja on tietokoneen muistipaikan nimi. • Muuttuja pitää esitellä määrittelemällä muuttujan nimi ja muuttujan sisältämän tiedon tyyppi eli tietotyyppi muuttujan nimi int summa; String teksti; © Jukka Harju, Jukka Juslin 2007 16

Tietotyyppi int Tuloksellinen Java-ohjelmointi • int-tyyppinen muuttuja voi sisältää vain kokonaislukuja. • int-tyyppiset arvot

Tietotyyppi int Tuloksellinen Java-ohjelmointi • 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 2007 17

Muuttujan alustus Tuloksellinen Java-ohjelmointi • Muuttujien esittelyn yhteydessä muuttujalle voidaan antaa alkuarvo. int summa

Muuttujan alustus Tuloksellinen Java-ohjelmointi • 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 2007 18

Tietotyyppi double Tuloksellinen Java-ohjelmointi • double-tyyppinen muuttuja sisältää desimaalilukuja. • double-tietotyypin arvoalue on todella

Tietotyyppi double Tuloksellinen Java-ohjelmointi • 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 2007 19

Tietotyyppi boolean Tuloksellinen Java-ohjelmointi • boolean-tietotyypillä esitetään totuusarvoa: boolean -tyyppisen muuttujan arvo on aina

Tietotyyppi boolean Tuloksellinen Java-ohjelmointi • 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 2007 20

Tietotyyppi char Tuloksellinen Java-ohjelmointi • char-tietotyypillä voidaan esittää yksittäinen merkki. • char-tyyppinen tieto kirjoitetaan

Tietotyyppi char Tuloksellinen Java-ohjelmointi • char-tietotyypillä voidaan esittää yksittäinen merkki. • char-tyyppinen tieto kirjoitetaan heittomerkkien sisään. • Esimerkkejä char-tyyppisistä muuttujista: char vastaus = 'K'; char numeerinen. Merkki = '1'; • Katso myös kirjan esimerkki 2. 5. © Jukka Harju, Jukka Juslin 2007 21

Muut alkeistietotyypit Tuloksellinen Java-ohjelmointi Edellisten tietotyyppien lisäksi Javassa on seuraavat alkeistietotyypit. • byte: voi

Muut alkeistietotyypit Tuloksellinen Java-ohjelmointi 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 2007 22

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset ©

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin 2007 23

Sijoittaminen Tuloksellinen Java-ohjelmointi • Sijoitusoperaatio muuttaa muuttujan arvoa. • Sijoitusoperaattori on "="-merkki. int arvo

Sijoittaminen Tuloksellinen Java-ohjelmointi • 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 2007 24

Vakiomuuttujat Tuloksellinen Java-ohjelmointi • Vakiomuuttuja on muuttuja jolle voidaan suorittaa sijoitusoperaatio vain kerran. •

Vakiomuuttujat Tuloksellinen Java-ohjelmointi • 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 2007 25

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset ©

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin 2007 26

Operaattorit Tuloksellinen Java-ohjelmointi • Operaattori kertoo minkälainen toimenpide operandeille halutaan suorittaa. • Javan aritmeettiset

Operaattorit Tuloksellinen Java-ohjelmointi • Operaattori kertoo minkälainen toimenpide operandeille halutaan suorittaa. • Javan aritmeettiset operaattorit suorittavat matematiikasta tuttuja laskutoimituksia. Laskutoimitus Operaattori Summa + Erotus - Kertolasku * Jakolasku / Jakojäännös / © Jukka Harju, Jukka Juslin 2007 27

Aritmeettiset operaattorit Tuloksellinen Java-ohjelmointi • Esimerkkejä aritmeettisten operaattorien käytöstä. int summa = 1 +

Aritmeettiset operaattorit Tuloksellinen Java-ohjelmointi • 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 2007 28

Operaattorit Tuloksellinen Java-ohjelmointi • Operaattoreille on olemassa myös lyhennysmerkintöjä. • Kaikki lyhennysmerkinnät on lueteltu

Operaattorit Tuloksellinen Java-ohjelmointi • 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 2007 29

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset ©

Missä ollaan? Tuloksellinen Java-ohjelmointi Ensimmäinen Java-ohjelman toteuttaminen Eclipsellä Java-API Tietotyypit Sijoittaminen Operaattorit Tyyppimuunnokset © Jukka Harju, Jukka Juslin 2007 30

Tyyppimuunnokset Tuloksellinen Java-ohjelmointi • Usein on tarpeen muuntaa tiedon tietotyyppiä. • Esimerkki: kokonaislukua (int)

Tyyppimuunnokset Tuloksellinen Java-ohjelmointi • 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 2007 31