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

Koko: px
Aloita esitys sivulta:

Download "812341A Olio-ohjelmointi, 2016. Olio-ohjelmoinnin peruskäsitteet ja Java-kieli"

Transkriptio

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

2 Sisältö 1. Java-kieli 2. Luokka 3. Luokkakaaviot 4. Lisää Javaa Javalla 2

3 Java-kieli n Sun Microsystems tutkimusprojekti 1991 koodinimeltään Green n Kieli kehitetty C/C++ -kielestä James Goslingin johdolla n Alunperin nimi oli Oak, mutta tämänniminen ohjelmointikieli oli jo olemassa -> uudeksi nimeksi 1995 Java n Kieli julkaistiin virallisesti toukokuussa 1995 Javalla 3

4 Java-kieli Java-kieli on yksinkertainen (verrattuna C++ kieleen) ei osoittimia ei moniperintää automaattinen muistinvaraus ja roskien keruu Java on olio-orientoitunut kieli Java on hajautettu kieli Java on tulkattava kieli Java-ohjelmat käännetään ns. tavukoodiksi, jota Java Virtuaalikone (JVM, Java Virtual Machine) suorittaa tavukoodi on laiteriippumatonta Javalla 4

5 1. Java-kieli Javassa on pyritty luotettavuuteen mahdolliset virheet pyritään löytämään mahdollisimman aikaisessa vaiheessa korjattu muutamia muissa kielissä ilmenneitä heikkouksia ei osoittimia, joten ohjelma ei pääse tuhoamaan muistissa olevaa dataa poikkeusten käsittely "älä luota mihinkään" -periaate Javalla 5

6 1. Java-kieli Java on siirrettävä ohjelma voidaan suorittaa toisella laitealustalla kääntämättä ohjelmaa uudelleen ei alustariippuvaisia ominaisuuksia Javalla 6

7 1. Java-kieli n Java-ohjelman kirjoittaminen, kääntäminen ja suorittaminen Ohjelma kirjoitetaan tiedostoon tekstieditorilla (esim. notepad- eli muistio-ohjelmalla). Tuloksena saadaan tekstitiedosto, joka sisältää ohjelman lähdekoodin esimerkiksi Ohjelma.java Javalla 7

8 1. Java-kieli n Tekstitiedosto muutetaan tietokoneen ymmärtämään muotoon java-kääntäjällä: javac Ohjelma.java n Saadaan uusi tiedosto: Ohjelma.class, jossa on suoritettava ohjelmakoodi ns. tavukoodina (byte code) n Ohjelma käynnistetään kutsumalla java-tulkkia, joka suorittaa annetun ohjelman. Tulkkia kutsuttaessa ei käytetä.class -laajennusta: java Ohjelma Javalla 8

9 1. Java-kieli luo/muokkaa ohjeman lähdekoodia public class Ohjelma {! public static void main( String [ ] args ) {! System.out.println("Tervehdys!");! }! } lähdekoodi KÄÄNNÖSAIKAISET VIRHEET... Max stack Max locals getstatic FIELD java/lang/system out Ljava/io/PrintStream; B ldc STRING Tervehdys! invokevirtual METHOD java/io/printstream println (Ljava/lang/String;) V B return B1 Exceptions Table Additional info LineNumberTable 00 0A A javac Ohjelma.java Tavukoodi java Ohjelma tulos AJONAIKAISET VIRHEET Javalla 9

10 2.Luokka n Luokka kuvaa olion ominaisuudet n Jäsenet Attribuutit (olion rakenne) Metodit (olion toiminta, c-kielen funktiot) n Kapselointi n Tiedon kätkentä (onion model) Piilottaa kaiken, johon ei ulkopuolelta saa päästä käsiksi (tiedon suojaus) Kätkettyihin tietoihin pääsee käsiksi vain julkisten metodien avulla n Tiedon abstrahointi Javalla 10

11 Luokka n Luokka toimii mallina, jonka perusteella tehdään olioita n Olio on luokan ilmentymä n Kaikilla saman luokan ilmentymillä eli olioilla on samanlaiset attribuuti ja metodit n Attribuuttien arvot ovat kuitenkin jokaisen olion omia Javalla 11

12 Luokka n Attribbuuttien arvot kuvaavat olion tilan Henkilö-luokan attribuutteja voisi olla n Pituus n Nimi n Henkilötunnus n Attribuutit voivat olla tyypiltään Javan alkeistietotyyppejä (kokonaislukuja, merkkejä, jne.) Viittauksia toisiin olioihin (Henkilö-luokan olion attribuutin nimi arvona on viite merkkijono-olioon) Javalla 12

13 Luokka Metodit määrittävät olioiden käyttäytymisen Voivat muuttaa olion tilaa Voivat palauttaa jnkin arvon kutsujalleen Kaikilla luokan olioilla on samat metodit Metodeilla on Nimi Mahdolliset parametrit Runko, joka määrittää metodin toiminnan Javalla 13

14 Luokka n Luokan määrittely Javassa: class LuokanNimi { } attribuutit (eli muuttujat) konstruktori(t) metodit Ohjelmoija saa päättää luokan nimen (älä kuitenkaan käytää ääkkösiä ) Luokan nimi alkaa aina isolla kirjaimella Javalla 14

15 Luokka Luokan ja luokan sisältämän tiedoston nimi aina sama class Henkilo { } Henkilo.java class sanan edessä voi olla muuntimia public, protected, private, abstract, static, final tai strictfp Luokan nimen perässä voi olla tyyppiparametrien määrittely, extends tai implements määreet Javalla 15

16 Luokka n Luokan jäsenille voidaan antaa näkyvyysmääreet public, protected, private Myös oletusnäkyvyys (jätetään merkitsemättä) Javalla 16

17 Luokkakaavio Kuvaa luokasta kaiken olennaisen Ei metodien runkoja (toteutusta) Kuvataan muualla kaavioilla ja algoritmeilla Aika -tunnit: int -minuutit: int -sekunnit:int +Aika(t:int, m:int, s:int) +Aika( ) +gettunnit(): int +getminuutit(): int +getsekunnit(): int +settunnit(t: int) +setminuutit(m: int) +setsekunnit(s: int) +lisaatunti() +lisaatunti(t: int) Luokan nimi Luokan tiedot Luokan toiminnot Javalla 17

18 Luokkakaavio Atribuuttien kuvaaminen näkyvyysmääre attribuutinnimi: tyyppi! Näkyvyysmääre voi olla -, private (yksityinen) +, public (julkinen) #, protected (suojattu) ~, package (pakkaus) Metodien kuvaaminen näkyvyysmääre metodinnimi([param: tyyppi [,param: tyyppi] ]]): tyyppi! Javalla 18

19 Luokkakaavio Luokkakaaviolla kuvataan myös luokkien väliset assosiaatiot Assosiaatiolla nimeen voidaan liittää nuoli (>), joka osoittaa lukusuunnan Koostuminen Viitekorko -nimi: String 1 * koostuu > Korkojakso -alkupvm: Date -loppupvm: Date -korkoprosentti: double Viitekorko koostuu korkojaksoista Assosiaation kertautuminen (kardinaalisuus) Lähde: Vesterholm, Kyppö, Java-ohjelmointi, s. 60 Javalla 19

20 Luokkakaavio Assosiaation kertautuminen (kardinaalisuus) Montako oliota assosiaatio voi vähintään ja enintään yhdistää Viivan päähän n..m, n minimimäärä ja m maksimimäärä n..n voidaan lyhentää: n ja 0..*: * Opiskelija -nimi: String * osallistuu > Kurssi -nimi: String Kurssille voi osallistua maksimissaan 500 opiskelijaa Opiskelija voi osallistua niin monelle kurssille kuin haluaa Javalla 20

21 Luokkakaavio Perityminen (yleistys) Kuvio Ympyrä Suorakulmio Periytymisessä assosioaatio yliluokan ja aliluokan välillä Aliluokka tarkentaa tai erikoistaa yliluokkansa Aliluokat perivät kaikki yliluokkansa ominaisuudet Aliluokassa voi olla lisäominaisuuksia Voidaan muodostaa hierarkioita (eläin, nisäkäs, koira) Javalla 21

22 Luokkakaavio Assosiaatiota kahden luokan välillä kutsutaan koosteeksi Pääluokan olio koostuu komponenttiolioista Kirja koostuu luvuista ja luvut kappaleista Koostuminen kuvataan salmiakkikuviolla, joka sijaitsee koostuvassa päässä Kirja Luku Kappale Javalla 22

23 Luokkakaavio Transitiivisuus Jos A koostuu B:stä ja B koostuu C:stä, niin silloin A koostuu myös C:stä (kirja koostuu myös kappaleista) Asymmetrisyys A:n koostuessa B:stä ei B voi koostua A:sta (luku ei voi koostua kirjasta) Javalla 23

24 Luokkakaavio Aito kooste Komponentti voi olla olemassa ainoastaan pääluokan olion osana Komponentti voi olla osana ainoastaan yhdessä pääluokan oliossa Merkitään täytetyllä salmiakkikuviolla Rakennus * Huone Kun rakennus puretaan häviävät myös huoneet Javalla 24

25 Lisää Javaa, tunnukset ja avainsanat Tunnuksia ovat mm. luokkien, muuttujien, metodien ja attribuuttien nimet Voivat sisältää kirjaimia numeroita alaviivan Tunnus alkaa kirjaimella, ei pituusrajoituksia Kuten aina ohjelmoinnissa, tunnusten tulee olla kuvaavia Isoilla ja pienillä kirjaimilla ero Javalla 25

26 Tunnukset ja avainsanat Luokan nimen ensimmäinen kirjain alkaa isolla kirjaimella Muuttujien, attribuuttien ja metodien nimet alkavat pienellä kirjaimella, mutta voivat sisältää muuten isoja kirjaimia lukumaara pankkitilinnumero laskesumma( ) Javalla 26

27 Tunnukset ja avainsanat Javan avainsanoja ei saa käyttää tunnuksena abstract assert boolean break byte case catch char class const * continue default do double else enum extends false final finally float for goto * if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while Javalla 27

28 Muuttujat Javan muuttujia on kahdenlaisia Viitemuuttujat Sisältää viittauksen olioon (viitesemantiikka) Yksinkertaiset muuttuja, sisältävät alkeistyyppisiä tietoja kokonaislukuja reaalilukuja yksittäisiä merkkejä totuusarvoja Javalla 28

29 Muuttujat n Javassa vahva tyypitys n Muuttuja voi sisältää vain tyyppinsä mukaisia arvoja n Väärän tyyppisen tiedon sijoittaminen muuttujan arvoksi tuottaa kääntäjän virheilmoituksen n Sijoitus onnistuu vain jos tietotyypit ovat yhteensopivia ja sijoituksessa ei hukata informaatiota n Muuttujan määrittely: [final] tyyppi muutujannimi; [final] tyyppi nimi1, nimi2,, nimin; Javalla 29

30 Muuttujat Muuttujan määrittely: [final] tyyppi muutujannimi; [final] tyyppi nimi1, nimi2,, nimin; int ika; String nimi; double pituus, paino; final määrellä muuttujasta tehdään lopullinen arvoa ei voi muuttaa alustamisen jälkeen final double mailiakm = 1.609; Javalla 30

31 Tietotyypit Tyyppi Koko Arvoalue boolean true (tosi) tai false (epätosi) char 16 bit merkki, merkin unicode -koodi byte 8 bit kokonaisluku short 16 bit kokonaisluku int 32 bit kokonaisluku long 64 bit kokonaisluku float 32 bit liukuluku 1.4* *10 38, n. 7 numeron tarkkuus double 64 bit liukuluku 4.9* *10 308, n 15 numeron tarkkuus Javalla 31

32 Tietotyypit n float- ja double- tyypeillä kolme erityistä arvoa positiivinen ja negatiivinen ääretön n Float.NEGATIVE_INFINITY n Float.POSITIVE_INFINITY n Double.NEGATIVE_INFINITY n Double.POSITIVE_INFINITY NaN (Not a Number), arvoton lukuarvo n Float.NaN n Double.NaN Javalla 32

33 Muuttujien näkyvyys n Alue jossa muuttujaa voi käyttää Aina sen lohkon sisällä, jossa määritelty Muuttujilla ei voi olla samoja nimiä näkyvyysalueellaan Poikkeuksena attribuutit, jonka nimi voi olla saman kuin paikallisen muuttujan tai metodin parametrin nimi Tällöin muuttujan nimi peittää attribuutin nimen tällöin käytettävä this-avainsanaa Javalla 33

34 Muuttujat, alustaminen Paikallisia muuttujia ei alusteta automaattisesti Sijoitettava arvo ennen käyttöä, muuten kääntäjä antaa virheilmoituksen import java.io.*; public class MuuttujaDemo { public static void main( String [] args ){ final double PII = ; int leveys = 10; int korkeus, ala; korkeus = 25; ala = leveys * korkeus; korkeus = korkeus - 15; ala = leveys * korkeus; int r = 5; double ympyranala = PII * r * r; } } Javalla 34

35 Muuttujat, tulostaminen standardiin tulostusvirtaan Muotoilematon tulostus System.out.print( ); System.out.println( ); import java.io.*; public class TulostusDemo1 { public static void main( String [] args ){ int korkeus = 12, leveys = 10, piiri = 2 * (korkeus + leveys ); System.out.print("Korkeus on "); System.out.println(korkeus); System.out.println("Leveys on " + leveys); System.out.println("Piiri on " + piiri ); } } Javalla 35

36 Muuttujat, tulostaminen standardiin tulostusvirtaan Muotoiltu tulostus printf-metodilla printf(string format, Object args); format (ohjausjono) määrää tulostustavan Ohjausjono sisältää lainausmerkkien sisällä konversiomäärittelyjä sisältävän merkkijonon %[tietokohta$][liput][leveys][.tarkkuuus]konversio Hakasuluissa olevat eivät ole pakollisia %konversio Ohjausjonon perään pilkulla erotettuna ne tiedot, jotka tulostetaan ohjausjonon ohjaamana Javalla 36

37 Muuttujat, tulostaminen standardiin tulostusvirtaan Konversiomerkkejä ovat mm. d, lisää tulostukseen kokonaislukutyyppisen arvon 10- järjestelmän kokonaislukuna f, lisää tiedon desimaalilukuna c, lisää tiedon merkkinä s, lisää tiedon merkkijonona %, lisää %-merkin n, lisää järjestelmäkohtaisen rivinvaihdon Javalla 37

38 Muuttujat, tulostaminen standardiin tulostusvirtaan n Desimaalilukujen tulostuksessa tarkkuus määrää tulostuvien desimaalien lukumäärän n Leveys kertoo kohtaa tulostuvien merkkien minimimäärän n Oletuksena on tulostuksen tasasu kentän oikeasta reunasta n Lipuilla voi hienosäätää tulostusta -, tasaa tulostuksen vasempaan reunaan +, lisää aina luvun etumerkin välilyönti, positiivisille luvuille välilyönti luvun eteen 0, lisää etunollat luvun eteen pilkku, luvun ryhmittely Javalla 38

39 Muuttujat, tulostaminen standardiin tulostusvirtaan n Omalla koneella saattaa tulostus poiketa esimerkeistä n printf tekee luvuille järjestelmän mukaisen tulostuksen muotoilun n Suomalainen muotoilu asetuksiin import java.io.*; import java.util.locale; public class TulostusDemo { public static void main( String [] args ){ double luku = ; System.out.printf("luku on. %5.2f%n", luku); Locale loc = new Locale("fi", "FI"); System.out.printf(loc, "luku on: %5.2f%n", luku); } } Javalla 39

40 Muuttujat, tulostaminen standardiin tulostusvirtaan Ohjelman tulostus luku on: 1.23 luku on: 1,23 Väärän konversion käyttö aiheuttaa ajonaikaisen virhetilanteen double luku = ; System.out.printf("luku on. %5.2d%n", luku); Exception in thread "main" java.util.illegalformatprecisionexception: 2 at java.util.formatter$formatspecifier.checkinteger(formatter.java:2984) at java.util.formatter$formatspecifier.<init>(formatter.java:2729) at java.util.formatter.parse(formatter.java:2560) at java.util.formatter.format(formatter.java:2501) at java.io.printstream.format(printstream.java:970) at java.io.printstream.printf(printstream.java:871) at Malli.main(TulostusDemo.java:9) Javalla 40

41 Muuttujat, tyypinmuunnokset n Java käyttää vahvaa tyypitystä, vääräntyyppisen arvon sijoittaminen aiheuttaa virheen n Staatisen tyypityksen ansiosta virheet havaitaan jo käännösaikana n Muunos voidaan tehdä implisiittisesti (automaattisesti), jos tietoa ei häviä byte -> char -> short -> int -> long -> float -> double eksplisiittisesti, jos muunnoksessa voi hävitä tietoa tyypinmuunnosoperaattori n (tyyppi)lauseke Javalla 41

42 Muuttujat, operaattorit n Muuttujan/arvon tietotyyppi määritää mitä operaatioita muuttujalle sallitaan n Operaattori Operaatio, joka muodostaa arvon operaation kohteiden (operandien) perusteella Kolme kategoriaa, riippuen siitä montako operandia tarvitaan operaatiossa n Unaarioperaattori n Binäärioperaattori n Kolmiarvoinen operaattori (c = a > b? a : b;) Javalla 42

43 Muuttujat, operaattorit Operaattori Aritmeettiset operaattorit + - * / % Yhtäsuuruusoperaattorit ==!= Vertailuoperaattorit < > <= >= Loogiset operaattorit! && Sijoitusoperaattorit = += -= *= /= Erityiset lisäys- ja vähennysoperaattorit Javalla 43

44 Muuttujat, operaattorit Kertolasku ennen jakolaskua Samanarvoiset yhteen- ja vähennyslaskut lasketaan vasemmalta oikealle Operaattorien operandien kehitysjärjestys Vasemmalta oikealle laskea() + laskeb() + laskec(); Ensin luodaan koodi, joka tuottaa laskea():n ja sitten laskeb():n arvon Sitten lasketaan em. arvojen summa ja kehitetään laskec():n arvo ja lasketaan se yhteen edellisen tuloksen kanssa Virheen sattuessa kehittäminen lopetetaan välittömästi Javalla 44

45 Muuttujat, operaattorit Suluilla voi muuttaa laskentajärjestystä Tarvittaessa tehdään automaattisia tyypinmuunnoksia Valinnassa järjestys on double, float, long ja int Jos toinen operandi on int ja toinen float muutetaan int float-tyyppiseksi Reaaliluvuilla laskenta poikkeaa koulumatematiikasta Reaaliluvuilla arvot +0.0 ja -0.0, ovat vertailussa samoja mutta vaikuttavat tuloksen etumerkkiin (1.0/-0-0 = - ) NaN, laskutoimitukset joissa NaN mukana on tulos NaN Javalla 45

46 Muuttujat, operaattorit Poikkeavia laskutoimituksia x y X * y x/y x%y äärell.luku ±0.0 ±0.0 ± NaN äärell.luku ± ± ±0.0 x ±0.0 ±0.0 ±0.0 NaN NaN ± äärell.luku ± ± NaN ± ± ± NaN NaN ± ±0.0 NaN ± NaN Reaalilukulaskennassa kaksi tiukkuusastetta Oletuksena eri virtuaalikoneet eivät tuota tarkalleen samaa tulosta tiukka reaalilukulaskenta strictfp määreellä Javalla 46

47 Muuttujat, tietojen lukeminen käyttäjältä Standardisyöttövirta System.in Lukeminen tavuina Muutettava merkkijonoksi ja muiksi tietotyypeiksi muiden luokkien avulla Javassa luokat Console yksittäisten rivien lukeminen Javalla 47

48 Muuttujat, tietojen lukeminen käyttäjältä import java.io.console; class LueTietoja { private static final Console konsoli = System.console(); public static void main(string [] args){ System.out.print("Anna etunimesi >"); String etunimi = konsoli.readline(); System.out.printf("Terve \"%s\" %n", etunimi); } } Anna etunimesi >Ilkka Terve "Ilkka" Javalla 48

49 Muuttujat, tietojen lukeminen käyttäjältä Luokka Scanner pakkauksessa util Kytketään standardi inputvirtaan (System.in) import java.util.scanner; class LueTietoja { private static final Scanner lukija = new Scanner(System.in); public static void main(string [] args){ System.out.print("Anna etunimesi >"); String etunimi = lukija.nextline(); System.out.printf("Terve \"%s\" %n", etunimi); } } Javalla 49

50 Muuttujat, tietojen lukeminen käyttäjältä Metodeja nextline() lukee rivin tekstiä nextint(), nextlong() lukee kokonaisluvun nextfloat(), nextdouble() lukee desimaaliluvun Javalla 50

51 Ohjausrakenteet Valinta- ja toistorakenteet vaativat jonkin ehtolausekkeen, jonka tuottaman totuusarvon perusteella päätellään mitä tehdään seuraavaksi Totuusarvot, aitoja arvoja toisin kuin vaikka C:ssä boolean- tietotyyppi true! false! boolean onparillinen;! onparillinen = (5 % 2 == 0);! Javalla 51

52 Ohjausrakenteet Javan loogiset operaattorit operaattori selite! negaatio (not) && & ehdollinen JA (and) ehdoton JA ehdollinen TAI (or) ehdoton TAI ^ poissulkeva tai, JOKO TAI (xor) Ehdollinen ja ehdoton ja/tai eroavat toisistaan siinä, että ehdollisissa tapauksissa (&&, ) lausekkeen arvon kehitäminen loppuu heti, kun lausekkeen tulos voidaan päätellä (ns. oikosulkuominaisuus) Javalla 52

53 Ohjausrakenteet Ehtolauset kuten C:ssä if(ehto)! lausea;! else! lauseb;! if(ehto){! lause1;! lause2;! }else{! lause3;! lause4;! }! Javalla 53

54 Ohjausrakenteet Ehto-operaattori int x = 2, y = 5;!! int z = x > y? x-y : x+y; //z on 7! switch -lause! switch( valintaa ohjaava lauseke ){! case arvo1:! lauseet;! break;! case arvo2:! lauseet;! break;! case arvon:! lauseet;! break;! default:! lauseet;! }! Javalla 54

55 Toistorakenteet n Samat kuin C:ssä do {! lause(ita);! }while(ehto); while(ehto) {! lause(ita);! }while! for(alustus; ehto; päivitys){! lause(eita)! }! Javalla 55

56 Toistorakenteet Parannettu versio for-toistorakenteesta Jonkin joukon kaikkien alkioiden läpikäymiseen ns. foreach-silmukka Joukko voi olla Taulukko Jokin Iterable-liittymän totetuttavan luokan olio, esimerkiksi kokoelma (myöhemmin tästä)!! Javalla 56

57 Toistorakenteet for( muodollinen parametri : lauseke ) lause! n Muodollinen parametri määrittelee muuttujan, joka saa arvokseen vuorollaan jokaisen joukon alkion arvon kun suoritetaan lause n Voidaan käyttää mm. taulukoiden yhteydessä Taulukko on lauseke, jonka alkiot käydään läpi public static void tulostataulukko(int [] luvut){! for( int tulostettavaluku : luvut ){! System.out.println(tulostettavaLuku);! }! }! Javalla 57

58 Merkit Merkit kuvataan Unicode-standardin mukaisesti char-tyyppi 16 bittinen ( merkkiä) Laajennttu Unicode -tyyppi, merkit esitetään inttyyppisinä tai kahtena peräkkäisenä char-arvona Erityismerkit \n, \\,sama merkitys kuin C:ssä \uxxx, heksadesimaaliluku, joka kuvaa jonkin Unicode-merkistön merkin (esim. \u03c0 on π) Javalla 58

Java-kielen perusteet

Java-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ätiedot

Java-kielen perusteet

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ätiedot

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

Ohjelmassa 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ätiedot

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

JAVA-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ätiedot

Java-kielen perusteita

Java-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ätiedot

Java-kielen perusteita

Java-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ätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (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ätiedot

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

Javan 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ätiedot

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

Ohjelmointitaito (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ätiedot

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Vertailulauseet. 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ätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

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

2. 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ätiedot

Olio-ohjelmointi Javalla

Olio-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ätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (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ätiedot

Java-kielen perusteet

Java-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ätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion 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ätiedot

7. Näytölle tulostaminen 7.1

7. 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ätiedot

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot. EVTEK Teknillinen ammattikorkeakoulu Ohjelmointi (C) T0004 Syksy 2003 Olli Hämäläinen kurssin sisältö ja tavoitteet työmuodot luennot 1-2/2003 laboratorioharjoitukset 1-2/2003 kotitehtävät, laboratoriokerrat

Lisätiedot

Sisä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. 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ätiedot

Metodien tekeminen Javalla

Metodien 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ätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

Lisätiedot

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

Luokka 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ätiedot

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

Tietojen 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ätiedot

Tietotyypit ja operaattorit

Tietotyypit 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ätiedot

5/20: Algoritmirakenteita III

5/20: Algoritmirakenteita III Ohjelmointi 1 / syksy 2007 5/20: Algoritmirakenteita III Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/17 Tämän

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

9. Periytyminen Javassa 9.1

9. 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ätiedot

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

C-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ätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

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

12. 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ätiedot

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,

Lisätiedot

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Poikkeukset Poikkeuksella tarkoitetaan yllättävää ajonaikaista tilannetta, joka

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Metodit. 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 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ätiedot

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

4. 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ätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) 1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 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ätiedot

Muuttujat ja kontrolli. Ville Sundberg

Muuttujat ja kontrolli. Ville Sundberg Muuttujat ja kontrolli Ville Sundberg 14.9.2007 Alkeistyyppi Alin abstraktiotaso josta tarvitsee välittää Yksittäinen, jakamaton tiedonjyvä Tavallaan kaikki alkeistyypit ovat lukuja arvojoukko vaihtelee

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin 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ätiedot

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

Sisä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ätiedot

6. Muuttujat ja Java 6.1

6. 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ätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

7. Oliot ja viitteet 7.1

7. Oliot ja viitteet 7.1 7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin

Lisätiedot

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

Yleistä. 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ätiedot

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

Sisä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ätiedot

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

8. 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ätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisä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ätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

20. Javan omat luokat 20.1

20. 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ätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A 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ätiedot

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

Sisä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ätiedot

Mikä yhteyssuhde on?

Mikä yhteyssuhde on? 1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String

Lisätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A 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ätiedot

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1 11. Javan valintarakenteet 11.1 Sisällys If- ja if-else-lauseet. Orpo else. Valintaa toisin: switch-lause. 11.2 If-lause Merkitään varatulla sanalla if. Kuvaa yksisuuntaisen päätöksen: rakenteen lauseet

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin 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ätiedot

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

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöteja tulostusvirtojen avulla. Tiedostoja voidaan

Lisätiedot

16. Javan omat luokat 16.1

16. Javan omat luokat 16.1 16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

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

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki Tehtävä 1 Koherentti selitys Koherentti esimerkki ½p ½p Tehtävä 2 Täysiin pisteisiin edellytetään pelaajien tulostamista esimerkin järjestyksessä. Jos ohjelmasi tulostaa pelaajat jossain muussa järjestyksessä,

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi

Lisätiedot

17. Javan omat luokat 17.1

17. 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ätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot 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ätiedot

1. Omat operaatiot 1.1

1. 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ätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. 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

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

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 26. Tiedostot 26.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja

Lisätiedot

Poikkeustenkäsittely

Poikkeustenkä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ätiedot

Java-kielen perusteet

Java-kielen perusteet 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,

Lisätiedot

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

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja voidaan

Lisätiedot

JAVA-OHJELMOINNIN PERUSTEET. Sisältö 1. JAVA OHJELMOINTI... 2 2. LÄHTEITÄ... 19 3. HARJOITUKSET... 20 4. MUUTAMA MALLIRATKAISU...

JAVA-OHJELMOINNIN PERUSTEET. Sisältö 1. JAVA OHJELMOINTI... 2 2. LÄHTEITÄ... 19 3. HARJOITUKSET... 20 4. MUUTAMA MALLIRATKAISU... 1 JAVA-OHJELMOINNIN PERUSTEET Sisältö 1. JAVA OHJELMOINTI... 2 2. LÄHTEITÄ... 19 3. HARJOITUKSET... 20 4. MUUTAMA MALLIRATKAISU... 27 2 1. JAVA OHJELMOINTI Kurssin tavoite ensimmäinen ohjelmointikurssi

Lisätiedot

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

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

8. 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ätiedot

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

Sisä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ätiedot

6. Muuttujat ja Java 6.1

6. 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ätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. 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ätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisä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ätiedot

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

Opintojakso 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ätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 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ätiedot

11. Javan toistorakenteet 11.1

11. 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ätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 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

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma. Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

Javan perusteita. Janne Käki

Javan 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ätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin 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ätiedot

Sisä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. 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ätiedot

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

on 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

Sisällys JAVA-OHJELMOINTI Osa 3: Laskennan ohjaus. Lohkolause (block) Peräkkäinen laskenta. Lohkon käyttö. Esimerkki

Sisällys JAVA-OHJELMOINTI Osa 3: Laskennan ohjaus. Lohkolause (block) Peräkkäinen laskenta. Lohkon käyttö. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 3: Laskennan ohjaus Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Peräkkäinen laskenta Ehdollinen laskenta Laskennan toisto Laskennan hierarkisuus 10/19/99

Lisätiedot