Java-kielen perusteet
|
|
- Eeva-Liisa Laine
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 2 Java-kielen perusteet Tämän osan sisältö Syntaksi Ohjelma, luokka, metodi Tunnukset, muuttujat ja tyypit esittely, alustaminen, näkyvyyssäännöt Syöttö ja tulostus Metodit määrittely, kutsu, parametrit, paluuarvo Vakiot Laskulausekkeet, operandit Merkkijonot käs. tarkemmin myöhemmin Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Syntaksi On säännöstö, joka määrää ohjelman muodollisen rakenteen rakenneosat kirjoitettava "puolipilkulleen" oikein Ohjelman rakenteen esittämisessä käytetään kielen omia englanninkielisiä varattuja sanoja ohjelmoijan itse keksimiä sanoja, tunnuksia muuttujan tunnus, aliohjelman (metodin) tunnus, operaattoreita (esim. +, -, /, *) ja erottimia (esim. ;,. ja välilyönti) Myös Javan luokkakirjastojen asioilla omat tunnuksensa, mutta ohjelmoija voi näkyvyyssääntöjen puitteissa ottaa nekin tunnukset omaan käyttöönsä (jolloin oletusmerkitys katoaa) Jotta erotetaan helposti, mikä on ohjelmoijan "omaa tuotantoa", kurssin esimerkeissä ohjelmoijan itse nimeämät asiat on kirjoitettu suomeksi ja Javan asiat englanniksi. Ohjelma, luokka, metodi Java-ohjelma koostuu yhdestä tai useammasta luokasta (class) tavallisimmin kukin luokka omassa tiedostossaan luokka ~ käännösmoduuli Luokka koostuu luokan muuttujista ja metodeista (method) ohjelman suoritus alkaa metodista main() vain yhdessä ohjelman luokista main()-metodi Metodi koostuu useista Java-kielisistä lauseista lauseosassa (koottu lohko) metodin toiminnan määrittely - metodin paikallisten muuttujien esittely - peräkkäisyys, valinta, toisto - jonkun muun metodin kutsu metodin parametrit esitellään metodin otsakkeessa - kutsussa parametreille on vietävä arvot metodin mahd. paluuarvo esitellään metodin otsakkeessa - jos ei palauta mitään käytetään sanaa void Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S otsake luokan runko Luokka tiedostossa LuokanNimi.java Metodin palauttaman arvon tyyppi /* Kommentteja ja selityksiä luokasta */ public class LuokanNimi { // luokan muuttujien esittelyt private static int omametodi(double parametri) { // muut luokan metodit Parametrin tyyppi public metodia voi kutsua tämän luokan ulkopuolelta private metodia voi kutsua vain tämän luokan sisältä static metodi sijaitsee muistissa kiinteässä kohdassa (kääntäjä päätti) metodin otsake metodin runko Esimerkki Tämä metodi ei palauta arvoa /* Tämä ohjelma piirtää tähdillä nelikulmion */ public class Nelio { private static void tulostarivi(int pituus){ int lkm = 0; while (lkm < pituus) { System.out.print("*"); lkm = lkm + 1; System.out.println(); Metodi int korkeus, leveys = 10; korkeus = 5; while (korkeus > 0) { tulostarivi(leveys); korkeus = korkeus - 1; Metodi Nelio.java Parametrimuuttuja saa arvon, kun metodia kutsutaan Suoritus alkaa aina main()-metodista Muuttujien esittelyt Metodin kutsu Huomaa koottujen lohkojen käyttö! Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Lue kirjasta s Tunnukset Muuttujat Tyypit Tunnukset (identifiers) Nimiä esim. muuttujille, vakioille, metodeille, kirjastoille Säännöt alkavat kirjaimella, sitten kirjaimia tai numeroita tai _ isot ja pienet kirjaimet ovat eriarvoisia saa käyttää skandinaavisia kirjaimia å, ä, ö, Å, Ä ja Ö ei pituusrajoituksia Esimerkkejä Math luokkakirjaston nimi, jossa matemaattisia metodeja Math.sin() luokassa Math olevan metodin sin kutsu Math.PI vakion pii nimi int kokonaislukutyypin tunnus double liukulukutyypin tunnus Pallo itse nimetyn luokan tunnus nopeus itse nimetyn muuttujan tunnus Huomaa vakiintuneet kuvanala itse nimetyn muuttujan tunnus kirjoitusasut. asetaarvo() itse nimetyn metodin kutsu Noudata! MAX itse nimetyn vakion tunnus ks. Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S
2 Muuttujat (variables) Tyyppi (type) Tietovarastoja erilaisille asioille ("muistilappuja") Muuttujalla tunnus sekä tyyppi tunnus on muuttujan yksilöivä nimi tyyppi määrittelee millaista tietoa muuttujassa voi säilyttää ja millaisia operaatioita muuttujaan voi kohdistaa esim. kokonaislukumuuttujaan voi lisätä kokonaislukuja, mutta ei desimaalilukuja Ennen muuttujan käyttöä kääntäjälle kerrottava nuo molemmat asiat muuttujan esittelyssä String käyttäjännimi; int lkm; On tyypillistä, että muuttujan arvo muuttuu ohjelman suorituksen aikana useaan kertaan (tästä nimitys muuttuja) lkm = 0; lkm = lkm + 1; Sijoituslause: "saa arvokseen" Muuttujan tietotyyppi tai lyhyemmin tyyppi ilmaisee kääntäjälle kuinka paljon muuttuja tarvitsee muistista tilaa minkälaista (-tyyppistä) tietoa sinne voi tallettaa minkälaisia operaatioita siihen voidaan kohdistaa Javan tietotyypit ovat alkeistietotyypit sekä oliotyypit Alkeistietotyypit Tyyppi Selitys Koko Arvoalue (min..max) byte tavu 8 bittiä short lyhyt kokonaisluku 16 b int kokonaisluku 32 b long pitkä kokonaisluku 64 b float lyhyt liukuluku 32 b (tarkkuus n. 6 desimaalia) double liukuluku 64 b (n. 16 desimaalia) char Unicode-merkki 16 b kaikki merkit boolean totuusarvo 8 b tai 16 b true tai false Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Kaikki olio-ohjelmoinnin luokat ovat oliotyyppejä luokka pitää sisällään loogisesti yhteenkuuluvia muuttujia sekä metodit, joilla muuttujien arvoja käsitellään oliot eivät sisälly tämän kurssin aihepiiriin Myös merkkijonotyyppi String on oliotyyppi merkkijono on kokoelma peräkkäisiä merkkejä kukin merkki vie tilaa 16 bittiä pituutta ei ole rajoitettu String käyttäjännimi = Olli Ohjelmoija ; String on myös Javan luokkakirjasto sisältää valmiita metodeja merkkijonojen käsittelemiseksi Merkkijonojen käsittelystä tarkemmin metodeihin ja lauseisiin tutustumisen jälkeen Muuttujan esittely Kaikki ohjelman muuttujat pitää esitellä ennen käyttöä Muuttujan voi esitellä missä tahansa kohdassa koottua lohkoa Esittely on muotoa <muuttujan tyyppi> <muuttujan nimi> int indeksi, lkm, summa; char merkki; String nimi; boolean tulos; näillä kaikilla sama tyyppi Käytä muuttujille aina niiden käyttötarkoitusta kuvaavia nimiä esim. sademäärä, pisteet, palkka ei esim. s, pi, pa Hyvä tapa: kommentoi muuttujan käyttötarkoitus, ellei ilmeisen selvää Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Muuttujien näkyvyys Muuttujia voi määritellä missä tahansa kohdassa lohkoa Pääohjelmametodin tai minkä tahansa muun metodin sisällä määriteltyjä muuttujia kutsutaan paikallisiksi muuttujiksi paikalliset muuttujat ovat käytettävissä omassa lohkossaan määrittelyriviltä alkaen Muuttujia voi esitellä myös metodien ulkopuolella niitä kutsutaan globaaleiksi muuttujiksi (luokkamuuttujiksi) ovat käytettävissä ko. luokkatiedoston kaikissa metodeissa, ja tietyin lisämäärein myös muissa luokkatiedostoissa Eri kootuissa lohkoissa voi olla samannimisiä muuttujia, ja ne ovat toisistaan täysin riippumattomia viittaus kohdistuu aina siinä lohkossa esiteltyyn muuttujaan, jossa lausekin on Muuttujan alustaminen Muuttujalle annettava arvo ennen kuin sitä voi käyttää laskutoimitusten operandina, tulostuksessa jne. arvoa ei saa tutkia ennen kuin se on määritelty kääntäjä huomaa ja tilanteesta saadaan virheilmoitus Muuttujan arvon voi määritellä esittelyn yhteydessä int summa = 0; "muuttuja summa saa arvokseen 0" boolean lopetus = false, onkook; tai erikseen sijoituslauseella int luku; luku = 0; tai muuttujalle voi lukea arvon (näppäimistöltä tai tiedostosta) luku = Oma.lueInt(); Metodin parametri (muuttuja sekin) saa alkuarvon metodia kutsuttaessa Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Lue kirjasta s , Syöttö Tulostus /* Tämä ohjelma tulostaa kuluvan vuoden vuosiluvun. Tämä tässä oleva teksti on monirivinen kommentti. */ public class TulostaVuosi { int tamavuosi = 2012; // muuttujan alustaminen System.out.print("Nyt on vuosi "); System.out.println(tamaVuosi); System.out.println("Nyt on vuosi " + tamavuosi); Nyt on vuosi 2012 Nyt on vuosi 2012 merkkijonojen katenointi Tulostusoperaatiot print seuraava tulostus samalle riville println seuraava tulostus uudelle riville printf muotoiltu tulostus (formatted) arvo ensin merkkijonoksi PS. Kirjan esimerkkikoodit löytyvät T:-levyltä Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S
3 Huom! Scanner Luokka, joka tarjoaa lukemiseen tarvittavat metodit Ei automaattisesti käytettävissä, tuotava käyttöön import-määreellä import java.util.scanner; Ohjelmakoodissa luotava ensin Scanner-tyyppinen (olio)muuttuja Scanner input = new Scanner(System.in); ja sitten voi lukea oletus: näppäimistö int iii = input.nextint(); // kokonaisluvun lukeminen double ddd = input.nextdouble(); // desimaaliluvun lukeminen String sss = input.nextline(); // kokonaisen rivin lukeminen String sana = input.next(); // lue seuraavaan tyhjämerkkiin asti Muut paitsi nextline ohittavat luettavan edessä olevat tyhjämerkit välilyönti, tab ja rivivaihto ovat tyhjämerkkejä Ei osaa käsitellä virheellisesti annettua syötettä, ohjelma "kaatuu" poikkeustilanteiden käsittelytapa opetetaan kurssilla Olio-ohjelmointi Desimaaliluvun syöttömuoto riippuu järjestelmän LOCALE-asetuksista annettava joko muodossa 1.25 tai 1,25 englannin kieli, suomen kieli Ohjelmoinnin perusteet / Auvo Häkkinen / S import java.util.scanner; import java.util.locale; public class Lukemista { String rivi; int eka; double toka; Locale.setDefault(Locale.ENGLISH); // nyt syötettäessä käytetään pistettä Scanner näppis = new Scanner(System.in); System.out.println( Anna nimesi: ); rivi = näppis.next(); System.out.println( Anna kokonaisluku: ); eka = näppis.nextint(); System.out.println( Anna reaaliluku: ); toka = näppis.nextdouble(); System.out.println( Syötit: + eka + ", " + toka + ", " + rivi); Tarkempaa tietoa Scanner-luokasta Java SE 6 API-dokumentaatiosta ks. java.sun.com/javase/6/docs/api Ohjelmoinnin perusteet / Auvo Häkkinen / S Swing Myös Swing-kirjaston JOptionPane-luokan syöttö- ja tulostusdialogeja voi käyttää muuttujien arvojen lukemiseen Kirjastorutiinit saa käyttöön lisäämällä ohjelman alkuun import-lauseen import javax.swing.*; Syöttö String lukustr; int luku; lukustr = JOptionPane.showInputDialog("Anna kokonaisluku"); luku = Integer.parseInt(lukuStr); showinputdialog palauttaa syötteen aina String-muuttujaan se pitää muuttaa halutuksi numeeriseksi tyypiksi metodilla Integer.parseInt() tai Double.parseDouble() import javax.swing.*; public class PyydäJaTulostaKokonaisluku { int luku; String lukustr; PyydäJaTulostaKokonaisluku.java lukustr = JOptionPane.showInputDialog("Anna kokonaisluku"); luku = Integer.parseInt(lukuStr); JOptionPane.showMessageDialog(null,"Luku on " + luku); System.exit(0); Kirja s. 52 Tulostus JOptionPane.showMessageDialog(null, Tulostettava teksti ); 2 Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Oma.java Koska muuttujien arvojen lukeminen näppäimistöltä ei aina ole suoraviivaista (virhetilanteet!), käytämme itsetehdyn luokan Oma metodeja Esimerkki x = Oma.lueInt() d = Oma.lueDouble() c = Oma.lueChar() s = Oma.lueString() kokonaisluvun lukeminen desimaaliluvun lukeminen merkin lukeminen merkkijonon lukeminen int x; System.out.print( Anna kokonaisluku: ); x = Oma.lueInt(); Luokan metodit eivät hyväksy virheellisiä syötteitä Oma-luokka (nimellä Oma.java) löytyy kurssin hakemistosta T:-levyltä Kopioi samaan hakemistoon (pakkaukseen), jossa sitä käyttävät ohjelmat ovat! public class Kysely { String nimi; char sukunimenekakirjain; double paino; Kysely.java System.out.print("Anna etunimesi: "); nimi = Oma.lueString(); System.out.print("Anna sukunimesi 1. kirjain: "); sukunimenekakirjain = Oma.lueChar(); System.out.print("Anna painosi (kg): "); paino = Oma.lueDouble(); System.out.println("Hei " + nimi + " " + sukunimenekakirjain + ". " + "Painosi on " + paino + " kg."); Anna etunimesi: Urho Anna sukunimesi 1. kirjain: K Anna painosi (kg): 85 Hei Urho K. Painosi on 85 kg. kutakin käyttötarkoitusta varten oma muuttuja Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S public class Summa { Summa.java int x; int y; int summa; System.out.println("Anna kaksi kokonaislukua, " + "lasken niiden summan."); System.out.print("Anna 1. luku: "); x = Oma.lueInt(); System.out.print("Anna 2. luku: "); y = Oma.lueInt(); summa = x + y; System.out.println("Lukujen summa on " + summa); System.out.println("Lukujen summa on " + x + y); System.out.println("Lukujen summa on " + (x + y)); Anna kaksi kokonaislukua, lasken niiden summan. Anna 1. luku: 2 Anna 2. luku: 8 Lukujen summa on 10 Lukujen summa on 28 Lukujen summa on 10 katenoi kaksi erillistä lukuarvoa peräkkäin Ohjelmoinnin perusteet / Auvo Häkkinen / S jotta tulkitsee yhteenlaskuksi Muotoiltu tulostus lippu - tulostus kentän vasempaan reunaan + etumerkki näkyviin 0 etunollat näkyviin leveys.tarkkuus pienin mahd. kentän leveys desimaaliosan pituus muoto d decimal f floating-point number e exponential notation g käytä edellisistä lyhyempää muotoa s string of characters c char x unsigned hexadecimal o unsigned octal Toi on pilkku Ohjelmoinnin perusteet / Auvo Häkkinen / S kirja s. 48 System.out.printf("%[lippu][leveys[.tarkkuus]]muoto", argumentti) Huom: argumentit lopussa pilkuin eroteltuna yhtä monta kuin %-muotoilujakin [ ] tarkoittaa syntaksimerkinnöissä valinnaista osaa, ts. osa voi puuttua oletus: oikeaan reunaan
4 import java.util.scanner; public class MuotoiltuTulostus { static Scanner lukija = new Scanner(System.in); System.out.printf("Anna nimesi: "); String nimi = lukija.next(); System.out.printf("Nimesi on %s%n", nimi); Rivinvaihdon (new line) voi antaa joko muodossa %n tai \n System.out.printf("Anna ikäsi: "); int ika = lukija.nextint(); System.out.printf("Olet ensi vuonna %d vuotta\n", ika+1); System.out.printf("Anna painosi (kg): "); double paino = lukija.nextdouble(); System.out.printf("Anna pituutesi metreinä esim 1,78: "); double pituus = lukija.nextdouble(); double painoindeksi = paino / (pituus*pituus); Anna nimesi: Pekka Nimesi on Pekka Anna ikäsi: 25 Olet ensi vuonna 26 vuotta Anna painosi (kg): 87 Anna pituutesi metreinä esim 1,78: 1,86 Pituutesi on 1,86 m Painoindeksisi, Pekka, on 25,15 Antamasi tiedot olivat Nimi Ika Pituus Paino Pekka 25 1,86 87,00 System.out.printf("Pituutesi on %.2f m\n", pituus); System.out.printf("Painoindeksisi, %s, on %.2f", nimi, painoindeksi); System.out.printf("\n\nAntamasi tiedot olivat\n"); System.out.printf("%-20s%6s%8s%8s\n", "Nimi","Ika","Pituus","Paino"); System.out.printf("%-20s%6d%8.2f%8.2f\n", nimi,ika,pituus,paino); Kirja s. 50 Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Lue kirjasta s Metodit Metodit Metodien käyttö tukee asteittain tarkentuvaa suunnittelua tee kustakin loogisesta kokonaisuudesta metodi piilota yksityiskohdat metodin sisälle ohjelmasta tulee helpommin ymmärrettävä ja helpommin testattava Samanlaisina toistuvia ohjelmanosia ei saa kirjoittaa useaan kohtaan, vaan niistä on tehtävä metodeja niitä sitten kutsutaan useasta kohdasta Metodin otsakkeessa esitellään - metodin mahdollisesti saamien parametrien tyypit ja tunnukset - kutsussa nuo muuttujat saavat alkuarvonsa kutsujalta - metodin mahdollisesti palauttaman paluuarvon tyyppi = kutsurajapinnan esittely Metodin runko koostuu kootusta lohkosta - metodin paikallisten muuttujien esittely - peräkkäisyys, valinta, toisto, syöttö, tulostus - jonkun muun metodin kutsu = metodin toiminnan määrittely Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Paluu ja arvon palauttaminen kutsujalle public class MunLuokka { // globaalien muuttujien esittelyt tähän // luokan muut metodit tähän Paluuarvon tyyppi private static int munmetodi(double x){ return(3*x); int tulos = munmetodi(5); Parametrin tyyppi ja sen tunnus otsake runko Metodin kutsu Metodin kutsu Ohjelman suoritus siirtyy metodiin, kun sitä kutsutaan nimellä jos metodilla parametreja, ne asetetaan kutsussa sulkeisiin heti nimen perään sulut pakolliset, vaikkei metodilla olisi parametrejakaan Kutsu siirtää ohjelman kontrollin kutsuttuun metodiin, ja suoritus jatkuu metodin lauseiden suorituksella Kun metodin toiminta päättyy, kontrolli palaa takaisin kutsukohtaan kun suoritettu metodin viimeinen lause, tai kun suoritetaan return()-lause public class MunLuokka { private static int laske() { return 42; private static void tee(int x) { tulos = laske(); public static void main() { tee(5); Käytämme tällä kurssilla vain staattisia metodeja. Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Yksinkertaisimmillaan kutsussa ei välitetä parametreja metodille, eikä se palauta arvoa public class Kukuntaa { Paluuarvon tyyppinä void Parametrilista tyhjä private static void kukkuu() { System.out.println("\n"); kukkuu(); kukkuu(); Jos halutaan, että metodia ei saa kutsua määrittelyluokkansa ulkopuolelta, se esitellään määreellä private Kun metodi määritellään julkiseksi (public), sitä voi kutsua mistä tahansa, myös luokan ulkopuolelta public class Kakikello { public static void kukkuu() { System.out.println("\n"); Kakikello.java public class Kakikellotesti { Kakikello.kukkuu(); Kakikellotesti.java Staattisia metodeja kutsutaan aina luokkaan (ei olioon) liittyen Vain yhdessä samaan ohjelmaan kuuluvista luokista on main()-metodi void = tyhjä, merkityksetön, vapaa, avoin Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S
5 Kutsu onnistuu edellä kuvatulla tavalla, kun luokat sijaitsevat samassa pakkauksessa (eli hakemistossa) Muissa pakkauksissa olevien luokkien staattisten metodien käyttö vaatii import-lauseen esim. jos luokka Oma.java olisi pakkauksessa apurutiinit import apurutiinit.oma; System.out.print("Montakos söit? "); int montako = Oma.lueInt(); Parametrit Jos metodin halutaan toimivan eri kutsukerroilla eri tavoin, sille voi välittää arvoja parametrien avulla Todellisena parametrina voi kutsussa olla mikä tahansa lauseke, jolle voi laskea arvon ennen metodiin siirtymistä public static void kukkuu(int lkm){ while (lkm > 0){ System.out.println(""); lkm = lkm - 1; Kutsuesim: int x=5; kukkuu(2); kukkuu(x); kukkuu(x+2) Parametri on metodin paikallinen muuttuja joka saa alkuarvonsa kutsun yhteydessä muut metodin paikalliset muuttujat sen sijaan alustettava erikseen Paikalliset muuttujat ovat olemassa vain silloin, kun metodia suoritetaan niihin voi viitata vain metodin rungossa (koottu lohko) Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Kuormittaminen Samalle metodinimelle voi kirjoittaa erilaisia versioita, jos metodit eroavat parametrien perusteella toisistaan mekanismia kutsutaan funktion kuormittamiseksi parametrien lukumäärä tai tyypit erilaisia (paluuarvon tyyppien ero ei riitä!) kääntäjä osaa päätellä kutsun parametrien perusteella kumpaa tarkoitetaan public class Kakikello { public static void kukkuu() { System.out.println( Cuckoo"); public static void kukkuu(int lkm){ while (lkm > 0){ System.out.println(""); lkm = lkm - 1; kukkuu(); kukkuu(5); kirja s. 112 Ohjelmoinnin perusteet / Auvo Häkkinen / S Cuckoo Metodin otsakkeessa kuvattuja parametreja kutsutaan muodollisiksi parametreiksi (formal) Kutsussa niiden arvoiksi tulee todellisten (actual) parametrien arvot eli ne saavat alkuarvonsa kutsuttaessa Todellisen parametrin nimi voi olla sama kuin vastaavan muodollisen parametrin, mutta tämä ei ole välttämätöntä metodille välitetään aina vain parametrin arvo Todellisten parametrien ja paluuarvon oltava oikeaa tyyppiä Metodin määrittely Metodin kutsu count = 2; ch = calc(2, count, HELLO ); O private static char calc(int num1, int num2, String msg){ int sum = num1 + num2; char result = msg.charat(sum); return result; Merkkijonon merkit indeksoidaan alkaen numerosta 0 Ohjelmoinnin perusteet / Auvo Häkkinen / S Paluuarvo Metodi voi kutsua myös toista metodia Metodi voi palauttaa tietoa kutsujalleen return-lauseella Jos metodi ei palauta arvoa, paluuarvon tyyppi on void, eikä return-lausetta välttämättä tarvitse käyttää public class Laskuri { private static int summa(int eka, int toka){ int sum; sum = eka + toka; return sum; // palauta arvo kutsujalle int x = 1; int y = 2; int z; z = summa(x,y); // ota paluuarvo vastaan System.out.println("Summa on " + z); eka: 1 toka: 2 sum: args: x: 1 y: 2 z: public class Laskentoa { private static int summa(int eka, int toka){ return eka + toka; // palauta arvo kutsujalle private static void luejalaske() { int eka, toka, summa; System.out.print("Anna luku: "); eka = Oma.lueInt(); System.out.print("Anna toinen luku: "); toka = Oma.lueInt(); summa = summa(eka,toka); // ota paluuarvo vastaan System.out.println("Summa on " + summa); luejalaske(); Näkyvyyssääntöjen nojalla nämä ovat eri muuttujia vaikka nimi onkin sama! Muuttuja summa ja metodin summa() kutsu eroavat sulkujen perusteella Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Vakiot Numeerista tai tekstitietoa, joka ei muutu ohjelman suorituksen aikana Vakiot Paljaat vakiot eli literaalivakiot Numeeriset vakiot esim. 5, 5.0, -5, 12.4 Merkkivakiot esim. '5', 'A', 'a' boolean-vakiot true ja false Merkkijonovakiot esim. "Java" Lue kirjasta s Nimetyt vakiot muuttujia, jotka ohjelmoija määritellyt vakioiksi määreellä final arvoa ei voi muuttaa ohjelmassa, kääntäjä tuottaa virheilmoituksen Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S
6 Numeeriset vakiot int x = 26; // 32-bittinen kokonaisluku long pitka = -110L; // 64-bittinen kokonaisluku int okta = 010; // oktaaliluku (8-järj), alussa 0 int heksa = 0xFF; // heksadesimaaliluku (16-järj) double javadouble1 = 5.678; // 64-bittinen liukuluku float javafloat1 = 5.678f; // 32-bittinen liukuluku double javadouble2 = 1.1e5; // liukuluku eksponenttimuodossa, 1.1 * 10 5 float javafloat2 = 1.1E5f; // lyhyt liukuluku eksponenttimuodossa Liukulukuvakion (desimaalilukuvakion) oletustyyppinä aina double Kun halutaan ilmaista, että vakion tyyppi on float, on käytettävä f-loppuliitettä Kannattaa käyttää aina double-tyyppiä float säästää hieman muistia, mutta sen huonompi tarkkuus voi aiheuttaa helpommin laskuvirheitä Merkkivakiot / Merkkijonovakiot Merkkivakio Tyyppinä char, Unicode-merkkejä Esitetään heittomerkeissä, tai Unicode-koodina '\u9999, missä 9999 on merkikoodin numeerinen arvo char ch = 'K'; ch = '\n'; char ääkirjain = '\u00c4'; Merkkijonovakio Tyyppinä String Lainausmerkkeihin kirjoitettuja Unicode-merkeistä muodostuvia peräkkäisten merkkien kokoelmia String kieli = "Java"; String kirja = "Docendo"; System.out.println("Suomi Finland"); Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Eräitä erikoismerkkejä Merkki Selitys Unicodekoodi \b Askelpalautin (backspace) \u0008 \n Rivinvaihto (newline) \u000a \r Palautus rivin alkuun (carriage return) \u000d \t Sarkain (tabulator) \u0009 \\ Kenoviiva \u005c \' Puolilainaus- eli heittomerkki \u0027 \" Lainausmerkki \u0022 \030 Oktaaliluku Totuusarvot ja null-vakio Totuusarvovakiot Tyyppinä boolean Sallitut arvot true ja false Nollaviite-vakio Käytetään oliomuuttujan arvona silloin, kun oliomuuttuja ei viittaa mihinkään olioon, mutta arvo on silti määritelty Sallittu arvo: null Huomaa, että kenoviivaa käytetään poistamaan sitä seuraavan merkin alkuperäinen Java-syntaksin mukainen merkitys System.out.println("\"Takuulla\",\nsanos Tamppereen likka."); "Takuulla", sanos Tamppereen likka. Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Nimetyt vakiot Ohjelmoijan itse määräämiä, vakiona pysyviä muuttujia, jotka saavat arvonsa esittelynsä yhteydessä Tapana kirjoittaa Esittely ja määrittely final-avainsanan avulla isoilla final int KILPAILIJOIDEN_LUKUMÄÄRÄ = 50; final char LOPETUSMERKKI = 'X'; final String KUSTANTAJA = "Docendo"; Jos vakiomuuttujan arvoa yrittää muuttaa ohjelmassa, kääntäjä antaa ohjelmoijalle virheilmoituksen Luokan sisällä vakioon voi viitata suoraan sen nimellä, luokan ulkopuolella käytettävä luokan nimeä, pistettä ja vakion nimeä (sama sääntö kuin muillekin julkisille tunnuksille) Esim. vakio pii sijaitsee luokassa Math nimellä PI, viittaus nimellä Math.PI public class TulostaEuroVuosi { TulostaEuroVuosi.java final int EURON_KÄYTTÖÖNOTTOVUOSI = 2002; private static void tulostavuosi() { System.out.print ("Eurosta tuli käteisvaluutta vuonna "); System.out.println(EURON_KÄYTTÖÖNOTTOVUOSI); public static void main(string args[]){ tulostavuosi(); Vrt. kirja s. 41 public class Ympyrä { final double OMA_PII = 3.14; double r = 2.5; double ala; Ympyrä.java ala = OMA_PII * r * r; System.out.println("Ympyrän pinta-ala omalla piillä " + ala); ala = Math.PI * r * r; System.out.println("Ympyrän pinta-ala Javan piillä " + ala); kirja s. 47 Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Laskutoimitukset Laskulausekkeet Operaattorit Lue kirjasta s Lähes jokaisessa ohjelmassa lasketaan jotain Laskutoimitukset ovat ohjelmointiteknisesti lausekkeita, aritmeettisia lausekkeita <operandi> <aritmeettinen operaattori> <operandi> Aritmeettinen lauseke sisältää operandeja ja operaattoreita operaattorit (esim. +,-,*,/) kuvaavat matemaattisia laskutoimituksia laskutoimitukset kohdistuvat operandien arvoihin, joita ovat muuttujien ja vakioiden arvot sekä metodien palauttamat arvot Tavallisesti aritmeettisen lausekkeen tulos sijoitetaan jonkun muuttujan arvoksi sijoitusoperaattorilla (=, "saa arvokseen") y = 2 * (x+1); tai sitä käytetään metodin parametrina teejotain(2 * y + z); Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S
7 Aritmeettiset operaattorit Kaksioperandiset (binääriset) operaattorit yhdistävät kaksi operandia lausekkeessa 4 * 5 kertomerkki on binäärinen operaattori 4 ja 5 ovat operandeja Yksioperandiset (unaariset) operaattorit vaativat vain yhden operandin esim. lauseke i++ kasvattaa i:n arvoa yhdellä ++-operaattori kohdistuu muuttujaan (operandiin) i Javan aritmeettiset operaattorit Operaattori - Unaarinen etumerkki Selitys ++, -- Unaarinen kasvatusoperaattori ja vähennysoperaattori +, - Yhteenlasku, vähennyslasku *, /, % Kertolasku, jakolasku, jakojäännös (modulo) +=, -= Lisäysoperaatio, vähennysoperaatio Esimerkkejä int x = 1; // esittele ja alusta ykköseksi x++; // kasvata yhdellä: 2 ++x; // kasvata yhdellä: 3 x--; // vähennä yhdellä: 2 --x; // vähennä yhdellä: 1 x += 1; // kasvata yhdellä: 2 x -= 1; // vähennä yhdellä: 1 x *= 10; // kerro vanha arvo 10:llä ja sijoita uudeksi arvoksi: 10 x /= 2; // jaa arvo 2:llä ja sijoita uudeksi arvoksi: 5 x %= 2; // jaa arvo 2:lla ja sijoita uudeksi arvoksi jakojäännös: 1 *=, /=, %= Kertolaskuoperaatio, jakolaskuoperaatio, jakojäännösoperaatio Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Prefix ja postfix- muodot Jos unaarinen operaattori ++ tai -- on ennen muuttujan tunnusta, operaatio suoritetaan ennen kuin muuttujaa käytetään lausekkeessa Jos unaarinen operaattori ++ tai -- on muuttujan nimen jälkeen, operaatio suoritetaan vasta, kun muuttujaa on käytetty lausekkeessa int x = 0; System.out.println(x++); // tulostaa 0 x on kasvanut arvoon 1 System.out.println(++x); // tulostaa 2 x on kasvanut arvoon 2 Numeeriset tyypit lausekkeissa Kaikki operaatiot kokonaislukujen ja reaalilukujen välillä sallittuja Tulos on tarkin tyyppi, joka mukana laskutoimituksessa, ja tuloksen tyyppi määritetään ennen mahdollista sijoitusta double r = ; int i = 10; double s = i / 4; // Huom: tulokseksi tulee 2, ei 2.5! double s = i / 4.0; // nyt tulokseksi tulee 2.5 double t = r * i; // OK! double on "tarkempi" Tyyppimuunnos (cast) tehdään antamalla kohdetyyppi suluissa, jonka jälkeen tulee muuttuja (tai lauseke): double r = ; int i; i = (int)r; // i:n arvoksi tulee 15 i = (int)(r + 2.5); // i:n arvoksi tulee 17 Numeeristen tyyppien välinen tyyppimuunnos voi kadottaa tietoa (esim. double-tyypin muunnos int-tyypiksi) Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S
Java-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
LisätiedotJavan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi
1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero
LisätiedotJava-kielen perusteita
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
LisätiedotOhjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
LisätiedotMetodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
Lisätiedot2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen
Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka
LisätiedotTietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla
Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään
LisätiedotMetodien tekeminen Javalla
1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.
Lisätiedot7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
LisätiedotLuokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.
1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
LisätiedotLauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if
3 Lauseet Lue kirjasta s. 54-84 Tämän osan sisältö Ehdollinen lause if Looginen lauseke vertailut AND-operaattori &&, & OR-operaattori, NOT-operaattori! Valintalause switch Toistolauseet while for do while
Lisätiedot1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotSisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotJava-kielen perusteita
Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen
LisätiedotJava-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
LisätiedotRajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
LisätiedotSisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4
Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 12.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 12.9.2018 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotSisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva
Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut, merkit, totuusarvot. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi
Lisätiedot6. Muuttujat ja Java 6.1
6. Muuttujat ja Java 6.1 Sisällys Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut, merkit, totuusarvot. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi
Lisätiedot8. Näppäimistöltä lukeminen 8.1
8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)
LisätiedotAlkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)
Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,
LisätiedotTaulukot. Taulukon käsittely. Tämän osan sisältö. Esimerkki. Taulukon esittely ja luonti. Taulukon alustaminen. Taulukon koko
5 Taulukot Tämän osan sisältö Taulukon esittely ja luonti Taulukon alustaminen Taulukon koko Taulukon käsittely indeksointi peräkkäiskäsittely hajakäsittely harva taulukko Taulukon järjestäminen Kaksiulotteinen
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotOperaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
Lisätiedot8. Näppäimistöltä lukeminen 8.1
8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)
LisätiedotPerusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n
Lisätiedot// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.
Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään
LisätiedotTietotyypit ja lausekkeet. Lewis & Loftus & Jukka Juslin 1
Tietotyypit ja lausekkeet Lewis & Loftus & Jukka Juslin 1 Tietotyypit Perustavaa laatua olevia ohjelmoinnin käsitteitä Luku 2 käsittelee seuraavia: Merkkijonot Primitiivitietotyypit (eli alkeistietotyypit)
LisätiedotOhjelmoinnin jatkokurssi, kurssikoe 28.4.2014
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.
LisätiedotOhjelmointi 1 / 2009 syksy Tentti / 18.12
Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN
LisätiedotC-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys
Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,
LisätiedotTaulukoiden käsittely Javalla
1 Taulukoiden käsittely Javalla Mikä taulukko on? Taulukon syntaksi Merkkijonotaulukko Lukutaulukko Taulukon kopiointi 1 Mikä taulukko on? Taulukko on rakenne, minne saadaan talteen usea saman tyyppinen
LisätiedotTaulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
LisätiedotListarakenne (ArrayList-luokka)
Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen
LisätiedotTietotyypit ja operaattorit
Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto
LisätiedotTaulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu
Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on
LisätiedotSisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit:
Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut, merkit, totuusarvot. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi
LisätiedotSisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus
Sisällys 19. Olio-ohjelmointia Javalla Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotMerkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:
Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin
LisätiedotPerusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin
Lisätiedot12. Näppäimistöltä lukeminen 12.1
12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.
LisätiedotSisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva
Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut. boolean- ja char-tyypit. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi
Lisätiedot6. Muuttujat ja Java 6.1
6. Muuttujat ja Java 6.1 Sisällys Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut. boolean- ja char-tyypit. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi
LisätiedotJohdatus Ohjelmointiin
Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast
LisätiedotYleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.
2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotSisältö. 2. Taulukot. Yleistä. Yleistä
Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
LisätiedotJavan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
LisätiedotSisältö. 22. Taulukot. Yleistä. Yleistä
Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä
LisätiedotHarjoitus 2 (viikko 45)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista lisätä static-määre operaatioidesi otsikoihin, jotta ohjelmasi kääntyvät. Muista noudattaa hyvän
LisätiedotVertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004
Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;
Lisätiedot19. Olio-ohjelmointia Javalla 19.1
19. Olio-ohjelmointia Javalla 19.1 Sisällys Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit
LisätiedotOhjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.
Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan
Lisätiedot4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
Lisätiedot812341A Olio-ohjelmointi, 2016. Olio-ohjelmoinnin peruskäsitteet ja Java-kieli
812341A Olio-ohjelmointi, 2016 Olio-ohjelmoinnin peruskäsitteet ja Java-kieli Sisältö 1. Java-kieli 2. Luokka 3. Luokkakaaviot 4. Lisää Javaa Javalla 2 Java-kieli n Sun Microsystems tutkimusprojekti 1991
LisätiedotHarjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
Lisätiedot// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.
Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään
LisätiedotSisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2
6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Standardi- ja tietorakenneluokkia Standardi- ja tietorakenneluokkia Javan API, ArrayList Ohjelmointirajapinta (Application Programming Interface, API)
LisätiedotOsoitin ja viittaus C++:ssa
Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 9.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotOlion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
LisätiedotOhjelmoinnin perusteet, kurssikoe
Ohjelmoinnin perusteet, kurssikoe 18.6.2014 Kirjoita jokaiseen konseptiin kurssin nimi, kokeen päivämäärä, nimi, TMC-tunnus ja opiskelijanumero tai henkilötunnus. Vastaukset palautetaan tehtäväkohtaisiin
LisätiedotPythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja
LisätiedotOhjelmoinnin perusteet, 1. välikoe
Ohjelmoinnin perusteet,. välikoe Nimi: Opiskelijanumero:.. 3. 4. Yhteensä Ohje: Ratkaise kaikki tehtävät. Lähdemateriaalia ja tietokonetta ei saa käyttää. Noudata ohjelmointitehtävissä Java-kielen vakiintuneita
LisätiedotOhjelmoinnin perusteet (Java)
Ohjelmoinnin perusteet (Java) HARJOITUKSIA Syksy 2012 / Auvo Häkkinen Jos et ehdi tehdä viikon tehtäviä labra-aikana, tee ne valmiiksi ennen seuraavaa kokoontumista. Tehtävät tulee kirjauttaa tehdyiksi
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
Lisätiedot17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotPoikkeustenkäsittely
1 Poikkeustenkäsittely Mitä poikkeustenkäsittely tarkoittaa? Poikkeuksen käsitteleminen Poikkeusluokkien hierarkia Poikkeuksen heittäminen 1 Mitä poikkeustenkäsittely tarkoittaa? Poikkeus (Exception) on
LisätiedotHarjoitus 5 (viikko 48)
Moni tämän harjoituksen tehtävistä liittyy joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Harjoitustyö edistyy sitä paremmin, mitä enemmän tehtäviä ratkaiset. Mikäli tehtävissä on jotain
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
LisätiedotTähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
Lisätiedot9. Periytyminen Javassa 9.1
9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.
Lisätiedot812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
LisätiedotKääreluokat (oppikirjan luku 9.4) (Wrapper-classes)
Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi
Lisätiedot20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotSisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
Lisätiedot11. Javan toistorakenteet 11.1
11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.
LisätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotSisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen
Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät
Lisätiedoton ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä
LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen
Lisätiedot