Java-kielen perusteita



Samankaltaiset tiedostot
Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Java-kielen perusteet

Java-kielen perusteet

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Java-kielen perusteita

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Metodien tekeminen Javalla

Mitä poikkeuskäsittely tarkoittaa?

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

7. Näytölle tulostaminen 7.1

Java-kielen perusteita

Listarakenne (ArrayList-luokka)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Java-kielen perusteet

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukoiden käsittely Javalla

8. Näppäimistöltä lukeminen 8.1

YHTEYSSUHDE (assosiation)

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Rajapinta (interface)

8. Näppäimistöltä lukeminen 8.1

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

12. Näppäimistöltä lukeminen 12.1

Olio-ohjelmointi Javalla

812341A Olio-ohjelmointi, Olio-ohjelmoinnin peruskäsitteet ja Java-kieli

Ohjelmoinnin perusteet Y Python

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

public static void main (String [] args)

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Java-kielen perusteet

17. Javan omat luokat 17.1

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Lista luokan sisällä

Ohjelmoinnin peruskurssi Y1

Merkkijonon tutkiminen matches-metodilla

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Merkkien ja merkkijonojen käsittelyä Javalla

Ohjelmoinnin jatkokurssi, kurssikoe

Ohjelmoinnin perusteet Y Python

Periytyminen (inheritance)

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Metodien tekeminen Javalla

Ohjelmoinnin peruskurssi Y1

17. Javan omat luokat 17.1

Ohjelmoinnin perusteet Y Python

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Harjoitus 2 (viikko 45)

Ohjelmoinnin perusteet, kurssikoe

Tietotyypit ja lausekkeet. Lewis & Loftus & Jukka Juslin 1

Taulukot. Jukka Harju, Jukka Juslin

Ohjelmoinnin perusteet Y Python

Taulukot. Taulukon käsittely. Tämän osan sisältö. Esimerkki. Taulukon esittely ja luonti. Taulukon alustaminen. Taulukon koko

Poikkeustenkäsittely

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Javan GUI Scratchaajalle

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

6. Muuttujat ja Java 6.1

4. Luokan testaus ja käyttö olion kautta 4.1

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

KOHDELUOKAN MÄÄRITTELY

1. Ohjelmoinnin perusteet, kesä Aloittaminen Tulostaminen Muuttujat if-rakenne Metodit

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Ohjelmointityö 65 Tekstinmuotoilu ohjelma. Dokumentaatio. Aki Heikkinen (155394)

Ohjelmointi 2 / 2010 Välikoe / 26.3

9. Periytyminen Javassa 9.1

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Ohjelmoinnin peruskurssi Y1

5. HelloWorld-ohjelma 5.1

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Python-ohjelmointi Harjoitus 2

ITKP102 Ohjelmointi 1 (6 op)

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Sisältö. 22. Taulukot. Yleistä. Yleistä

Luokan muodostimet (Constructors)

Harjoitus 4 (viikko 47)

Ohjelmoinnin perusteet Y Python

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

11. Javan valintarakenteet 11.1

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Vahva koostumussuhde (Composition)

5. HelloWorld-ohjelma 5.1

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if

Transkriptio:

Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1

Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja rivinvaihto System.out.println("Hei maailma"); } public static void main(string[] args) { HeiMaailma ohjelma = new HeiMaailma(); ohjelma.aja(); } } 2

Kirjoittaminen konsolinäkymään, jatkuu.. HeiMaailma -ohjelma tulostaa tekstin Hei Maailma Eclipsen Consolekansioon: 3

Muotoiltu tulostus (5.4.3) Java-kielen versioon 5.0:ssa lisättiin printf-tulostusmetodi: public PrintStream printf( String format,tulostettava_tieto) Metodin avulla voidaan tulostaminen muokata tiettyyn muotoon Esim. double luku = 3.7890; // Varataan 5 merkin levyinen kenttä, tulostetaan kahdella // desimaalilla ja rivinvaihto System.out.printf( luku=%5.2f%n,luku); tulostaa: luku= 3,79 4

%konversio %d, lisää kokonaislukuna %f, lisää desimaalilukuna %c, lisää merkkinä %s, lisää merkkijonona %%, lisää %-merkin %n, lisää rivinvaihdon Esim. int kluku = 78; System.out.printf( "1) %8d%n", kluku); // kenttä 8 merkkiä 1) 78 double dluku = -45.67789; System.out.printf( "2) %9.3f%n", dluku); // kenttä 9 merkkiä 3 desim. 2) -45,678 5 Ohjelmointi - Irene Vilpponen, Seija Lahtinen

Hienosäätöä, flag -, tasaa vasempaan laitaan +, lisää aina etumerkin välilyönti, lisää positiivisilla luvuilla alkuun välilyönnin 0, lisää etunollat,, käytetään ryhmittelyä Esim. double dluku = -45.67789; System.out.printf( "3) %-8.3f%n", dluku); 3) -45,678 long lluku= 1234567890; System.out.printf( "4) %,d%n", lluku); 4) 1 234 567 890 6

double pos = 3.45678; double neg = -234.7890; double iso = 345678.456; // desimaaliluku System.out.printf("1) %f%n", pos); // 2 desimaalia ja 0 desimaalia System.out.printf("2) %.2f%n",pos); System.out.printf("3) %.0f%n",pos); // kentän leveys 8 desimaaleja 2 System.out.printf("4) %8.2f%n", pos); System.out.printf("4) %8.2f%n", neg); // vasen tasaus System.out.printf("5) %-8.2f%n",pos); // etumerkki System.out.printf("6) %+8.2f%n",pos); System.out.printf("7) %+8.2f%n",neg); // välilyönti System.out.printf("8) %- 8.2f%n",neg); System.out.printf("8) %- 8.2f%n",pos); // etunollat System.out.printf("9) %08.2f%n", neg); System.out.printf("9) %08.2f%n", pos); // ryhmittely System.out.printf("10) %,8.2f%n",iso); 1) 3,45678 2) 3,46 3) 3 4) 4) 3,46-234,79 5) 3,46 6) 7) +3,46-234,79 8) -234,79 8) 3,46 9) -0234,79 9) 00003,46 10) 345 678,46 7

Tiedon luku näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa näppäimistöä varten ns. syöttöpuskuri eli muistialue, johon menevät käyttäjän kuvaruudulle kirjoittamat merkit, kun käyttäjä painaa enter-näppäintä. Ohjelma saa käyttöönsä syöttöpuskurin esimerkiksi Scanner-luokan avulla. Esimerkki Ohjelma tulostaa käyttäjälle seuraavaa: Anna henkilön etunimi ja sukunimi: Käyttäjä kirjoittaa tekstin: Tarmo Manninen ja painaa enter-näppäintä syöttöpuskurin sisältö on: Tarmo Manninen\n Indeksi osoittaa kirjainta T Viimeinen merkki, \n, on rivinvaihtomerkki eli enter 8

Scanner-luokka Kun Scanner-luokkaa käytetään, se on ilmoitettava kääntäjälle ohjelmatiedoston alussa seuraavasti: import java.util.scanner;. Scanner-olion määrittely: Scanner muuttuja; muuttuja= new Scanner (System.in); tai Scanner muuttuja= new Scanner (System.in); 9

Scanner-luokka, kokonaisluvun lukeminen public int nextint() palauttaa arvonaan syöttöpuskurista seuraavana olevan kokonaisluvun nextint-metodi ohittaa kaikki tyhjät (välilyönnit, tabuloinnit ja rivinvaihdot) kunnes vastaan tulee numero tai muu merkki kuin tyhjä 1) Jos syöttöpuskurissa on seuraavana numero, metodi lukee numerot, kunnes vastaan tulee tyhjä, ja muodostaa lukemistaan numeroista kokonaisluvun, jonka palauttaa arvonaan. 2) jos syöttöpuskurissa on seuraava merkki muu kuin tyhjä tai numero, tapahtuu ajoaikainen poikkeus (virhe) 3) jos syöttöpuskuri on tyhjä tai siellä ei ole muuta kuin tyhjää, nextintmetodi ohittaa kaikki tyhjät ja jää odottamaan puskurin täyttymistä. 10

Scanner-luokka, kokonaisluvun lukeminen, jatkuu.. Esimerkki: int luku; Scanner input = new Scanner(System.in); System.out.print("Anna kokonaisluku: "); luku = input.nextint(); tulostuu: Anna kokonaisluku: 78 Muuttujan luku arvoksi tulee luku 78 11

Scanner-luokka, desimaaliluvun lukeminen public double nextdouble() ja public float nextfloat() palauttaa arvonaan syöttöpuskurista seuraavana olevan desimaaliluvun ohittaa kaikki tyhjät (välilyönnit, tabuloinnit ja rivinvaihdot) kunnes vastaan tulee numero, desimaalierotin tai muu merkki kuin tyhjä 1) jos syöttöpuskurissa on seuraavana numero, metodi lukee numerot. Jos seuraava merkki ei ole desimaalierotin vaan tyhjämerkki, metodi muodostaa luetuista numeroista desimaaliluvun, jonka palauttaa arvonaan. 2) Jos syöttöpuskurissa on numeroita ja desimaalierotin tai vain desimaalierotin, metodi lukee numerot ja erottimen ja jatkaa numeroiden lukemista, kunnes vastaan tulee tyhjä ja muodostaa lukemistaan numeroista desimaaliluvun, jonka palauttaa arvonaan. 3) Jos syöttöpuskurissa on vain desimaalierottimen, jota ei seuraa numero, tai muuta kuin tyhjää ja numeroita, tapahtuu ajoaikainen poikkeus (virhe). 4) jos syöttöpuskuri on tyhjä tai siellä ei ole muuta kuin tyhjää, metodi ohittaa kaikki tyhjät ja jää odottamaan puskurin täyttymistä 12

Scanner-luokka, desimaaliluvun lukeminen, jatkuu Esim. double luku; Scanner input = new Scanner (System.in); System.out.print( Anna desimaaliluku: ); luku = input.nextdouble(); tulostuu Anna desimaaliluku: 6,5 Muuttujan luku arvon tulee luku 6.5 13 Ohjelmointi - Irene Vilpponen, Seija Lahtinen

Scanner-luokka, desimaaliluvun lukeminen, jatkuu Kun käytettävän tietokoneen näppäimistömme on asetettu Suomen kielelle sopivaksi, desimaalierotin on desimaalipilkku, kuitenkin kun Javaohjelmasta tulostetaan desimaaliluku, se tulostuu desimaalipisteellä ristiriita. Ristiriita voidaan korjata, kutsumalla Scanner-luokan metodia: public Scanner uselocale ( Locale locale ) Esimerkki // Muutetaan desimaalierotin desimaalipisteeksi. import java.util.locale; Scanner input = new Scanner (System.in); // ota käyttöön Locale-luokka input.uselocale ( Locale.US ); 14

Scanner-luokka, desimaaliluvun lukeminen, jatkuu Esim. double dluku; System.out.print("Anna desimaaliluku desimaalipilkuin + dluku = input.nextdouble(); varustettuna:"); System.out.println( Annoit " + dluku); input.uselocale ( Locale.US ); System.out.print("Anna desimaaliluku desimaalipistein + dluku = input.nextdouble(); varustettuna:"); System.out.println( Annoit " + dluku); toiminta: Anna desimaaliluku desimaalipilkuin varustettuna:2,3 Annoit 2.3 Anna desimaaliluku desimaalipistein varustettuna:2.3 Annoit 2.3 15

Scanner-luokka, totuusarvon lukeminen public boolean nextboolean() palauttaa arvonaan totuusarvon true tai false jos syöttöpuskurissa on seuraavana sana true tai false, jota seuraa vähintään yksi tyhjä (välilyönti, tabulointi, rivinvaihto), metodi palauttaa arvonaan ko. boolean arvon, jos kuitenkin puskurissa ei ole em. arvoja tai em. sanan jälkeen ei ole tyhjää, tapahtuu ajoaikainen poikkeus (virhe). Esimerkki: boolean totuus; Scanner input = new Scanner (System.in); tulostuu: System.out.print( Kerro totuus (true/false): ); totuus = input.nextboolean(); Kerro totuus (true/false): true totuus = true 16

Scanner-luokka, sanan lukeminen public String next() palauttaa arvonaan syöttöpuskurista löytyvän ensimmäisen sanan, joka päättyy tyhjään (välilyönti, tabulointi, rivinvaihto) metodi ohittaa puskurin alusta tyhjät, kunnes löytää merkin, joka ei ole tyhjä. Tämän jälkeen se lukee merkkejä, kunnes vastaan tulee tyhjä, jota se ei lue, eli syöttöpuskurin indeksi jää osoittamaan luetusta sanasta seuraavaa tyhjää merkkiä. Esim. String sana; Scanner input = new Scanner (System.in); System.out.print( Anna sana: ); sana = input.next(); tulostuu: Anna sana: kissa istui puussa muuttujan sana arvoksi tulee sana kissa 17

Scanner-luokka, rivin lukeminen public String nextline() palauttaa arvonaan syöttöpuskurin koko sisällön metodi lukee merkkejä syöttöpuskurin indeksistä alkaen rivinvaihtomerkkiin saakka ja sijoittaa lukemansa String-olioon, jonka palauttaa arvonaan. metodi lukee rivinvaihtomerkin, mutta ei vie sitä String-olioon. 18

Scanner-luokka, rivin lukeminen, jatkuu Esimerkki: String rivi; Scanner input = new Scanner (System.in); System.out.print( Anna lause: ); rivi = input.nextline(); Tulostuu: Ohjelma tulostaa: Anna Lause: Käyttäjä kirjoittaa: Tama on lause, joka sisaltaa valilyonteja. Muuttujan rivi arvoksi tulee Tama on lause, joka sisaltaa valilyonteja. 19

Scanner-luokka, syöttöpuskurin tutkiminen ilman lukemista public boolean hasnextint() tutkii, onko seuraava luettava kokonaisluku, ja palauttaa arvonaan true-arvon, jos on public boolean hasnextdouble() public boolean hasnextfloat() tutkii, onko seuraava luettava desimaaliluku, ja palauttaa arvonaan true-arvon, jos on 20

Scanner-luokka, syöttöpuskurin tutkiminen ilman lukemista, jatkuu public boolean hasnextboolean() tutkii, onko seuraava luettava boolean arvo true tai false, ja palauttaa arvonaan true-arvon, jos on public boolean hasnextline() tutkii, onko syöttöpuskurissa merkkijono, joka päättyy rivinvaihtomerkkiin, ja palauttaa arvonaan true-arvon, jos on 21

Harjoitus Tee ohjelmaluokka LukemisHarjoitus, joka pyytää ensin kokonaisluvun, sitten lukee ja tulostaa sen. Seuraavaksi ohjelma pyytää sanan, lukee sen ja tulostaa sen. Tämän jälkeen ohjelma pyytää desimaaliluvun, lukee sen ja tulostaa sen. Lopuksi ohjelma pyytää rivin tekstiä, lukee sen ja tulostaa. 22 Ohjelmointi - Irene Vilpponen, Seija Lahtinen