Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

2. Lisää Java-ohjelmoinnin alkeita

Samankaltaiset esitykset


Esitys aiheesta: "2. Lisää Java-ohjelmoinnin alkeita"— Esityksen transkriptio:

1 2. Lisää Java-ohjelmoinnin alkeita
Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka ict1td002 - Copyright Raine Kauppinen

2 Muuttuja ja viittausmuuttuja (1/4)
Edellä mainittiin, että String-tietotyyppi on muista mainituista, esimerkiksi int- tai double-tyypeistä poikkeava. Tämä liittyy siihen, että tietotyyppejä ja muuttujia on kahdenlaisia. Tietotyyppejä ovat alkeistyypit (int, double, boolean, char, byte, short, long ja float) ja abstraktit tietotyypit (esimerkiksi String). Vastaavasti on olemassa muuttujia ja viittausmuuttujia. ict1td002 - Copyright Raine Kauppinen

3 Muuttuja ja viittausmuuttuja (2/4)
Tavallisia muuttujia, joiden tietotyyppeinä esiintyy alkeismuuttujia, olemme jo käyttäneet usein, esimerkiksi int luku = 123; double dluku = 12.45; Sitä vastoin viittausmuuttujia, joiden tietotyyppinä esiintyy abstrakteja tietotyyppejä, olemme käyttäneet vähemmän, kuitenkin String on tälläinen, esimerkiksi: String mjono = ”Tekstiä”; ict1td002 - Copyright Raine Kauppinen

4 Muuttuja ja viittausmuuttuja (3/4)
Abstrakti tietotyyppi eroaa alkeistyypistä siten, että (Javassa) abstrakti tietotyyppi on itse asiassa luokka. String on siis Javan tarjoama valmis luokka, jota käytetään merkkijonojen tallentamiseen ja käsittelyyn. Abstraktin tietotyypin ideana on, että sen avulla voidaan käsitellä hyvin monimutkaisia rakenteita, esimerkiksi sellaisia, jotka koostuvat useista alkeistyypeistä. Esimerkiksi merkkijono koostuu useista merkeistä (char-alkeistyyppi). ict1td002 - Copyright Raine Kauppinen

5 Muuttuja ja viittausmuuttuja (4/4)
Viitausmuuttuja esitellään antamalla muuttujan tietotyypiksi luokan nimi (alla olevissa esimerkeissä ei aseteta alkuarvoa): String mjono; OmaLuokka olio; Myöhemmin tällä jaksolla opetellaan tarkemmin, miten omia luokkia käytetään viittausmuuttujina ja mitä näiden avulla tehdään. ict1td002 - Copyright Raine Kauppinen

6 Vakio ja literaalivakio (1/2)
Muuttujien lisäksi olemme käyttäneet paljon vakiota, esimerkiksi: 123 12.45 ”Tekstiä” ’a’ (Literaali)vakio on siis ohjelmakoodiin kirjoitettu osa, jolla ei ole tunnusta (nimeä) ja joka säilyy samana ohjelman suorituksen ajan. ict1td002 - Copyright Raine Kauppinen

7 Vakio ja literaalivakio (2/2)
Joskus on tarpeen myös nimetä vakio, jolloin käytetään muuttujaa, joka määritellään sellaiseksi, ettei sen arvoa voi ohjelman suorituksen aikana muuttaa. Tämä tapahtuu määreellä final: final double PII = 3.14; final String VAKIOTEKSTI = ”Tervetuloa”; Huomaa, että arvoltaan muuttumattoman (final-määreisen) muuttujan nimi on Javassa tapana kirjoittaa kokonaan isoilla kirjaimilla. ict1td002 - Copyright Raine Kauppinen

8 Sijoituslause (1/8) Tähän mennessä olemme asettaneet muuttujille esittelyn yhteydessä alkuarvon, toisin sanoen olemme sijoittaneet muuttujalle esittelyn yhteydessä arvon, esimerkiksi: int luku = 123; Tähän mennessä olemme aina sijoittaneet alkuarvoksi vakion. Useimmissa ohjelmissa on tarpeen muuttaa muuttujien arvoja useaan kertaan suorituksen aikana, esimerkiksi laskutoimitusten tai muiden operaatioiden seurauksena. ict1td002 - Copyright Raine Kauppinen

9 Sijoituslause (2/8) Yleisesti sijoituslause on muotoa
tunnus = lauseke; , jossa tunnus on jokin aiemmin esitelty muuttuja ja lauseke kokonaisuus, jolla on sama tietotyyppi kuin ko. muuttujalla. Lauseke voi olla mm. literaalivakio, aritmeettinen lauseke tms. ja se voi esimerkiksi sisältää muita muuttujia. Seuraavalla kalvoilla on esimerkkejä sijoituslauseista. ict1td002 - Copyright Raine Kauppinen

10 Sijoituslause (3/8) Muuttujan arvoksi sijoitetaan vakio:
luku2 = 34; // luku2 on tyyppiä int dluku = 45.1; // dluku on tyyppiä double nimi = ”Pekka”; // nimi on tyyppiä String Muuttujan arvoksi sijoitetaan laskuoperaation tulos: luku2 = (34+54)/2; dluku = 45.1*12.5; ict1td002 - Copyright Raine Kauppinen

11 Sijoituslause (4/8) Sijoituslauseita, joissa käytetään muita muuttujia: luku2 = (34+luku1)/luku3; dluku = 45.1*PII; nimi = VAKIOTEKSTI+”, Pekka”; Saman muuttujan arvoa voidaan samassa ohjelmassa muuttaa useita kertoja eri sijoituslauseilla; muuttujan arvona on viimeiseksi suoritetun sijoituslauseen mukainen arvo. ict1td002 - Copyright Raine Kauppinen

12 Sijoituslause (5/8) Sijoituslause on syytä opetella ajattelemaan ja lukemaan muodossa ”saa arvon”, esimerkiksi luku = 0; luetaan ”luku saa arvon nolla”, jottei sijoitus sekoitu ehtolauseiden yhteydessä opittavaan vertailuun. (Alku)arvon asettaminen muuttujan esittelyn yhteydessä on myös sijoitus, mutta nämä voi myös erottaa: int luku; // muuttujan esittely luku = 0; // (alku)arvon asetus ict1td002 - Copyright Raine Kauppinen

13 Luentoesimerkki 2.1 Tee ohjelma, joka laskee ja tulostaa näytölle pallon tilavuuden, kun pallon säde r on a) 0,5 cm b) 2,0 cm c) 8,5 cm Pallon tilavuus lasketaan kaavalla tilavuus = (4/3)*pii*r3 Voit käyttää piin likiarvoa 3,14. Talleta ratkaisusi tiedostoon PallonTilavuus.java. ict1td002 - Copyright Raine Kauppinen

14 Sijoituslause (7/8) Usein muuttujan arvoksi tarvitsee sijoittaa muuttujan entinen arvo lisättynä, kerrottuna tms. jonkin muun lausekkeen tuloksena. Tämä onnistuu sijoituslauseella esimerkiksi seuraavasti: luku = luku + 1; dluku = dluku * (15.67/maara); Tällaisiin usein käytettyihin sijoituksiin on myös lyhennemerkintöjä, joita on seuraavalla kalvolla. ict1td002 - Copyright Raine Kauppinen

15 Sijoituslause (8/8) luku += 10; // luku = luku + 10;
ict1td002 - Copyright Raine Kauppinen

16 Syötteen lukeminen ja Scanner-luokka (1/5)
Useimmat ohjelmat ovat interaktiivisia, eli ne suorituksensa aikana pyytävät tietoa (syötteitä) käyttäjältä, esimerkiksi näppäimistön kautta. Näppäimistöltä tulevan syötteen lukeminen on monimutkainen toimenpide, mutta Java tarjoaa tähän valmiita apuvälineitä, joista käytämme luokkaa Scanner. Scanner-luokka sisältää operaatiot mm. kokonaisluku-, desimaaliluku- ja merkkijonotyyppisten syötteiden lukemiseen esimerkiksi näppäimistöltä. ict1td002 - Copyright Raine Kauppinen

17 Syötteen lukeminen ja Scanner-luokka (2/5)
Scanner-luokka ei kuitenkaan ole automaattisesti käytettävissä (kuten esimerkiksi String-luokka on), vaan se pitää ensin määritellä käyttöön. Tämä tapahtuu import-määreellä ohjelman alussa, package määrityksen jälkeen: package osio1.vko2; import java.util.Scanner; ict1td002 - Copyright Raine Kauppinen

18 Syötteen lukeminen ja Scanner-luokka (3/5)
Lisäksi ohjelmakoodissa tarvitsee määritellä ja alustaa Scanner-tyyppinen viittausmuuttuja: public void aja(){ Scanner syote = new Scanner(System.in); } Alustuksessa määritellään syötteen tulevan näppäimistöltä (System.in) – huomaa, että vastaavasti Javan tulostuslause määrittelee tulostuksen menevän näytölle (System.out.println…). ict1td002 - Copyright Raine Kauppinen

19 Syötteen lukeminen ja Scanner-luokka (4/5)
Tämän jälkeen ko. viittausmuuttujan avulla voidaan näppäimistöltä lukea esimerkiksi merkkijonon vastaavan tyyppiseen muuttujaan: public void aja(){ Scanner syote = new Scanner(System.in); String mjono; System.out.prinln(”Anna syöte: ”); mjono = syote.nextLine(); System.out.prinln(”Syötit: ”+mjono); } ict1td002 - Copyright Raine Kauppinen

20 Luentoesimerkki 2.2 Tee ohjelma, joka kysyy käyttäjän asuinpaikan ja tulostaa näytölle tekstin ”X on mukava paikka.”, jossa X:n tilalle tulostaa käyttäjän syöttämä paikka. Talleta ratkaisusi tiedostoon AsuinPaikka.java. ict1td002 - Copyright Raine Kauppinen

21 Syötteen lukeminen ja Scanner-luokka (5/5)
Scanner-luokan avulla voi myös lukea esimerkiksi kokonaislukuja, desimaalilukuja ja muita tietotyyppejä sopivaa operaatiota käyttämällä (nextInt, nextDouble jne.). Lisätietoja Scanner-luokan käytöstä ja syötteen lukemisesta on osion kotisivulla olevassa dokumentissa scanner.doc. Tehdään kuitenkin vielä yksi ohjelma, jossa luetaan desimaalilukuja. ict1td002 - Copyright Raine Kauppinen

22 Luentoesimerkki 2.3 Tee ohjelma, joka kysyy käyttäjältä pallon säteen ja laskee ja tulostaa näytölle kyseisen pallon tilavuuden. Pallon tilavuus lasketaan kaavalla tilavuus = (4/3)*pii*r3 Voit käyttää piin likiarvoa 3,14. Talleta ratkaisusi tiedostoon InteraktiivinenTilavuus.java. ict1td002 - Copyright Raine Kauppinen


Lataa ppt "2. Lisää Java-ohjelmoinnin alkeita"

Samankaltaiset esitykset


Iklan oleh Google