JAVAN PERUSTEITA MAURI HEINONEN. Versio 1.0

Koko: px
Aloita esitys sivulta:

Download "JAVAN PERUSTEITA MAURI HEINONEN. Versio 1.0"

Transkriptio

1 JAVAN PERUSTEITA MAURI HEINONEN Versio 1.0

2 Tiivistelmä Tässä oppaassa on käyty lävitse javan perusteita, lähtien liikkeelle siitä, että mitkä ovat javan perusjutut, eli mitä tarvitaan kun luodaan itsenäisesti toimiva ohjelma tai sitten java appletti. i

3 Sisältö 1 Johdanto 1 2 Java ohjelmointikieli Yleistä Javasta Javan eri versioista Appletit eli sovelmat Javan Historia Mistä Java sai alkunsa? Java-kieli ja 5 4 Javan tärkeimmät ominaisuudet Oliopohjaisuus Java on jarjestelmariippumaton ohjelmointikieli Turvallisuus Moniajotuki Verkko on Javan koti Kansainvalinen merkkivalikoima Java-ohjelmoinnin perusteet Hello World! Itsenäinen sovellus Appletit Appletin liittäminen HTML-dokumenttiin Peruskielioppi Alkeistietotyypit Muuttujat Kommentit Vakiot (Literals) Tunnisteet Operaattorit Taulukot Kaksiulotteinen taulukko Harjoituksia Ehtolauseet 29 ii

4 6.1 if-lause switch-lause Harjoituksia Silmukat while-silmukka do...while -silmukka for-silmukka Silmukasta poistuminen (break) Uuden kierroksen aloittminen (continue) Harjoituksia Funktiot Javassa Merkkijonon muuntamisfunktiot omaksi luokaksi Harjoituksia Sanasto 42 iii

5 1 Johdanto Tässä oppaassa käsitellään Javaa, joka on Sun Microsystemsin kehittama järjestelmariippumaton oliopohjainen ohjelmointikieli. Java on ainoa luvulla kehitetty ohjelmointikieli. Alunperin Javan rakettimaisen nousun syy oli Webselaimeen liitetyssa Java-virtuaalikoneessa suoritettavat appletit. Tällä hetkellä Javaa käytetään yhä enemmän yrityssovellusten toteuttamisessa, koska Javalla voidaan mm. tehda verkkoon hajautettuja ohjelmistokomponentteja ja toteuttaa tietokantayhteydet. Javan tulevaisuus näyttää valoisalta, sillä monet tietotekniikan suuret yritykset (mm. IBM ja Oracle) tukevat Javan kehitystä yhä voimakkaammin. Lisää materiaalia aiheeta löytyy osoitteesta Toivon mielekkäitä lukuhetkiä oppaan parissa ja toivon myös, että olen onnistunut kirjoittamaan oppaassa käsiteltävät asiat niin helposti ja ymmärrettävästi, että ne olisivat helppo sisäistää. Mauri Heinonen 1

6 2 Java ohjelmointikieli Java on Sun Microsystemsin kehittämä järjestelmariippumaton oliopohjainen ohjelmointikieli, joka on saavuttanut suurta suosiota niin ohjelmistoteollisuudessa kuin opetuksessakin. Tässä luvussa tutustuaan yleisesti Javaan sekä sen historiaan. 2.1 Yleistä Javasta Java on Sun Microsystemsin kehittämä järjestelmariippumaton oliopohjainen ohjelmointikieli, joka on saavuttanut suurta suosiota. Javalle ennustetaan valoisaa tulevaisuutta niin ohjelmistoteollisuudessa kuin opetuskielenäkin. Java muistuttaa syntaksiltaan erittain paljon ohjelmistoteollisuudessa suosittua C++kieltä, mutta poikkeaa siitä monessa kohtaa hyvin radikaalisti. Järjestelmäriippumattomuus tarkoittaa, etta Java-ohjelmia voi kehittää ja testata esimerkiksi Linuxissa, mutta sama koodi toimii myos Windowsissa, Macintoshissa tai Java-verkkotietokoneessa (Network Computer). Tuettavien käyttöympäristöjen määrä kasvaa jatkuvasti, ja Javalla tullaan ohjelmoimaan tulevaisuudessa niin matkapuhelimia, digitaalitelevisioita kuin kotiverkkojakin Javan eri versioista Java-kielisiä ohjelmia voi käyttää laajasti erilaisissa käyttöympäristöissä, sillä Sunin ilmaiseksi jakama JDK (Java Developer Kit) on saatavilla mm. seuraaviin suosittuihin käyttöjärjestelmiin: Windows NT Windows 95 Linux Sun Solaris (Unix) 2

7 Macintosh Java-ohjelmoinnin aloittamiksi ei tarvitse ostaa sovelluskehitintä, koska Sun jakaa JDK:aa ilmaiseksi osoitteessa Jos haluat näppärän ilmaisen sovelluskehittimen graafiseen ympäristöön, joka pitää sisällään debuggerin niin kannattaa käydä osoitteesta lataamassa kyseinen ohjelmisto. Java-sovelluksen teko aloitetaan aina kirjoittamalla Java-kielinen lähdekoodi, joka käännetään Java-kääntäjällä (esim. JDK, JBuilder, Cafe jne.) järjestelmäriippumattomaksi tavukoodiksi (byte code). Käännetty tavukoodi suoritetaan sitä ymmärtävällä Java-virtuaalikoneella (Java Virtual Machine), joka voi olla esim. käyttöjärjestelmässä, matkapuhelimessa tai Web-selaimessa. Java lähdekoodi Lähdekoodin kääntäjä Tavukoodi Java Virtuaalikone Käyttöjärjestelmä (Windows, Unix, jne.) Laitteisto Appletit eli sovelmat Eniten mielenkiintoa ja näkyvyyttä saanut Javan sovelluskohde on Javaohjelman ajaminen WWW-selaimen sovellusikkunassa. Java-kääntäjän tuottaman ja WWW-selaimeen liitetyllä Java-virtuaalikoneella suoritettavan appletin (applet) koodi on järjestelmäriippumatonta tavukoodia, jota voidaan suorittaa millä tahansa käyttöjärjestelmällä. Javassa on kuitenkin monia muita nykyaikaisia ominaisuuksia, jotka tekevät siitä sopivan esim. tietokantaohjelmointiin tai hajautettujen järjestelmien ohjelmointiin. Oikeastaan Javassa yhdistyy useiden suosittujen olio-ohjelmointikielten parhaat ominaisuudet. Appletit ladataan WWW-palvelimelta Internet-verkon kautta selaimella, jossa ne käännetään toimiviksi ohjelmiksi selaimeen liitetylla Java-virtuaalikoneella (Java Virtual Machine). 3

8 3 Javan Historia Java on kieli, jonka ymmärtäminen vaatii kielen yllättävän lyhyen historian tuntemista. Java on kehitetty kokonaan 1990-luvulla, joten se on nykypäivän suosituimpien ohjelmointikielten uusin tulokas. Ensimmäinen versio JDK:sta astui päivänvaloon marraskuussa 1995, mutta sen jälkeen on vajaan viiden vuoden aikana ehtinyt tapahtua paljon. Tärkeimmät Java-versioiden julkaisuajankohdat ovat: Syksyllä 1995 ilmestyi Java 1.0 (JDK 1.0), joka soveltui Web-sivulle luotavien applettien tekemiseen, mikä nostikin kielen nopeasti maailmanmaineeseen. Keväällä 1997 ilmestyi Java 1.1 (JDK 1. 1), jossa oli muuttunut erityisesti käyttöliittymän ohjelmointi oliomaisempaan suuntaan. Graafisen käyttöliittymän ohjelmointiin suunnatusta AWT 1.1 -kirjastosta tuli pohja myos Java 2:n mukana jaettavaan Swing-komponenttikirjastoon. Loppuvuonna 1998 ilmestyi Java 2 (JDK 1.2), joka sisälsi uuden JFCluokkakirjaston (Java Foundation Clas,se.s), jossa tuli mukaan mm. kohuttu Swing, Java 2D -grafiikkakirjasto sekä uusia tietorakenneluokkia. Oikeastaan Java 2 sisältää sellaisen määrän uusia ominaisuuksia, komponentteja ja kirjastoja, että siitä on tullut täysin vertailukelpoinen minkä tahansa yleiskäyttöisen, ohjelmointiin tarkoitetun ohjelmointikielen kanssa. Java 2 on yli kolme kertaa suurempi kokonaisuus kuin Java 1.0, joten on luonnollista, että ensimmäisissä Java 2 -sovelluskehittimissä on esiintynyt lukuisia "lastentauteja", jotka ajan myötä saadaan korjattua. 3.1 Mistä Java sai alkunsa? Monet Javan ominaisuudet ovat suoraa seurausta kielen alkuperäisistä käyttötarkoituksesta sulautettujen järjestelmien ohjelmointiin. Java-kieli itsessään on hyvin pieni ja melko yksinkertainen. Java-ohjelma sopii hyvin pieneen 4

9 muistitilaan, sillä sen sisäinen esitystapa (ts. tavukoodi) on tiivista. Monet vaaralliset ohjelmointirakenteet (mm. Goto-hyppykäskyt ja keskusmuistiosoitteisiin viittaaminen) jätettiin kielestä kokonaan pois, sillä ne ovat olleet hyvin monien ohjelmointivirheiden lähteenä ohjelmointikielissä. Eräs tärkeimmistä ominaisuuksista oli virheiden käsittelyn parantaminen, ja sen vuoksi Java on ollut alusta alkaen turvallinen ohjelmointikieli. Turvallisuutta lisää mm. turvallisuusmanageri, joka huolehtii siitä, ettei verkosta ladattava javaappletti pääse käsiksi paikallisen tietokoneen järjestelmäresursseihin (kuten kiintolevyyn), jos siihen ei ole annettu oikeutta. Myös monet muut ohjelmointikielet olivat jo aiemmin toteuttaneet poikkeustenhallinnan (exception handling), mutta toteutukset olevat huomattavasti Javan toteutusta puutteellisempia. 3.2 Java-kieli ja WWW Vaikka Javalla voi luoda millaisia tietokoneohjelmia tahansa, suurin syy sen nykyiseen jatkuvasti lisääntyvään suosioon on ohjelmien toimivuus WWWselaimissa. Internet on maailmanlaajuinen asiakas-palvelin-järjestelmä (Client- Server), johon WWW-selain toimii graafisena käyttöliittymänä. Javan myötä toteutui mahdollisuus kehittää interaktiivisia WWW-sovellusohjelmia. WWW-selaimessa toimivalle sovellukselle asetetaan useita erikoisvaatimuksia, sillä ohjelmaa pitää pystyä ajamaan missä tahansa asiakaskoneessa, jolloin perinteinen konekielinen ohjelma ei enää toimi sellaisenaan. 5

10 4 Javan tärkeimmät ominaisuudet Javan tärkeimpiä ominaisuuksia ovat: oliopohjaisuus jarjestelnuiriippumattomuus turvallisuus automaattinen muistin vapauttaminen (dynaamisuus) tuki moniajolle (saikeet) tuki verkko-ohjelmoinnille tuki graatisen kayttoliittyman ohjelmoinnille sisaanrakennettu virheiden kasittely tuki kansainvaliselle merkistolle oma komponenttimalli (JavaBeans) 4.1 Oliopohjaisuus Java on täysin oliopohjainen ohjelmointikieli. Yksinkertaisinkin tietotyyppi on periaatteessa olio, vaikka rajoituksesta poiketaan tehokkuussyistä lukujen ja merkkien kohdalla. Myös yksinkertaisia tietotyyppejä voidaan käsitella oliomaisesti ns. wrapper-luokilla. Oliopohjaisuuden ansiosta useimmat ohjelmointivirheet paljastuvat jo käännöksen aikana eivätkä vasta koodia suoritettaessa. Poikkeuksena on luonnollisesti ohjelman logiikassa esiintyvät virheet, jotka eivät ole kielen vaan ohjelmoijan vastuulla. Oliopohjaisen koodin etuja on myöskin koodin uusiokäyttö uusissa projekteissa lähes sellaisenaan. Tämä edellyttää kuitenkin huolellista luokkien ja ohjelman toiminnallisuuden suunnittelua. 6

11 4.2 Java on jarjestelmariippumaton ohjelmointikieli Java-ohjelmat ovat suhteellisen helposti siirrettävissä laitteistolta toiselle. Javan lähdekoodi käännetään tavukoodiksi, jonka Java-virtuaalikone suorittaa. Virtuaalikone on tavallaan kone, mutta se on ainoastaan todellista tietokoneen prosessoria matkiva ohjelma. Java-tavukoodi on tälle virtuaalikoneelle ohjelmoitua konekieltä, mutta se ei toimi ainoastaan jossain tietyssä järjestelmässä, vaan missä tahansa järjestelmässä, johon on saatavilla tavukoodia ymmärtävä Java-virtuaalikone. Tavukoodi on suhteellisin tiivista, helppoa tulkata ja helposti käännettävissä järjestelmakohtaiselle konekielelle. JIT (Just In Time) on ollut suuren mielenkiinnon kohteena. Siinä järjestelmä lukee Java-tavukoodia kääntäen ohjelman tavukoodiesityksen tietokoneen konekielisiksi käskyiksi jo ennen ohjelman suoritusta. Koska Java-ohjelma suoritetaan konekielisin käskyin, Java-koodi voi tällöin olla lähes yhtä nopeaa kuin aito konekielinen ohjelma, mutta silti säilytetään tavukoodin mukanaan tuoma ohjelman helppo siirrettävyys. Ohjelmat voidaan käännöksen aiheuttaman viiveen jälkeen suorittaa konekieltä vastaavalla nopeudella. Java-virtuaalikonetta kutsutaan usein Java-tulkiksi. Koska tavukoodia voi suorittaa eri tavoilla, tämä käsite voi olla hieman harhaanjohtava. "Javatulkki" voi olla sopiva nimi Java-virtuaalikoneelle, joka tulkkaa tavukoodin, mutta useimmat virtuaalikoneet käyttävät muita tekniikoita (esim. JIT). Vaikka kaikki Java-tulkit ovat Java-virtuaalikoneita, niin kaikki Java-virtuaalikoneet eivät ole Java-tulkkeja. 4.3 Turvallisuus Java käyttää turvallisuusmanageria (security manager) rajoittamaan ohjelman mahdollisesti aiheuttamia vaarallisia tilanteita asiakaskoneella. Turvallisuusmanageri ei päästä Java-appletteja käsiksi käyttäjän tietokoneen tiedostojärjestelmään tai siellä oleviin ohjelmiin. Turvallisuusmanageri voi kuitenkin päästää itsenäisen sovelluksen käsiksi tiedostojärjestelmään, koska erityyppisille sovelluksille voidaan määritellä erilaisiaturvallisuustasoja. Ohjelmissa on luonnollisesti ollut muutamia virheitä, mutta käytännössa Javaohjelmien aiheuttamat turvallisuusaukot ovat olleet suhteellisen vaaratto- 7

12 mia. Internetistä ladattavien Java-ohjelmien turvallisuus taataan mm. seuraavasti: Appletit eivat voi kasitella jarjestelmassa olevia tiedostoja. Appletit eivat voi suorittaa jarjestelmassa olevia ohjelmia. Appletit eivat paase lahettamaan tietoa muualle Internetiin kuin sille palvelinkoneelle, josta ohjelma on ladattu, tai ne eivat paase kasiksi johonkin muuhun suojattuun resurssiin. Javan turvallisuutta lisää myös ohjelman virhetilanteiden järjestelmällinen hallinta. Ohjelmointikieli on perusratkaisuiltaan turvallinen, sillä Javalla ei voi viitata suoraan muistipaikkaan eikä muistia tarvitse itse vapauttaa, vaan Java-virtuaalikone vapauttaa muistin automaattisesti. Javassa on toteutettu täysin automaattinen muistin hallinta, jota kutsutaan roskien keruuksi. Tekniikassa varaamattomalla muistialueella olevat oliot voi poistaa muistista tietyin väliajoin. 4.4 Moniajotuki Javassa on sisäänrakennettu tuki säikeistä moniajoa varten. Se poikkeaa muista yleisimmistä ohjelmointikielistä, sillä niiden moniajo on yleensä toteutettu käyttöjärjestelmätasolla. Javassa moniajo on toteutettu virtuaalikoneeseen säikeillä, joten moniajo toimii järjestelmariippumattomasti. 4.5 Verkko on Javan koti Java suunnattiin verkko-ohjelmointikieleksi, joten kielen suunnittelussa on huomioitu myös Internet-verkko. Javan standardikirjasto tarjoaa luokkia URL-osoitteiden käsittelemiseen, yhteyden luomiseen asiakkaan ja palvelimen välille sekä mahdollisuuden suorittaa ohjelmaa jossain rajatussa ympäristössä eli "hiekkalaatikossa". Lisäksi Java tarjoaa tuen TCP/IP-pistokkeille, joiden avulla voi olla yhteydessä myös muilla ohjelmointikielillä toteutettuihin ohjelmiin, jotka toimivat IPverkossa. 8

13 4.6 Kansainvalinen merkkivalikoima Javassa on sisäänrakennettuna erittäin laaja tuki erilaisille standardoidun Unicode 2.0 -merkkivalikoiman merkeille. Tämä helpottaa ohjelmien tekoa esimerkiksi venäjän tai japanin kielellä. Unicode-merkistö on alaspain yhteensopiva ASCIImerkistön kanssa. Käyttöjärjestelmistä esimerkiksi Microsoft Windows 98 ja NT 4 tukevat Unicode-merkistöä. 9

14 5 Java-ohjelmoinnin perusteet Javalla voi tehdä ohjelmia, jotka ovat ns. itsenäisiä ohjelmia tai sitten esim. www-selaimessa toimivia Java-appletteja. Tulemme käymään molempien ohjelmatyyppien perusteet tässä kappaleessa lävitse. 5.1 Hello World! Aloitamme kappaleen yksinkertaisimmasta mahdollisesta esimerkistä, eli perinteikkäästä Hello World -esimerkistä käyttäen Eclipse nimistä ohjelmaa (saat haettua kyseisen ohjelman osoitteesta tai sitten tämän oppaan lisämateriaaleista) Itsenäinen sovellus 1. Käynnistä Eclipse. 2. Mene Eclipsen editointi tilaan. 3. Eclipsessä pitää luoda aina projekti, johon yksittäiset java-tiedostot liitetään. Näin ollen valitse File > New > Project. Eteesi avautuvasta ikkunasta valitse Java ja sen alta Java Project. Tämän jälkeen valitse next. Kirjoita Project name -kenttään jokin projektin nimi, jonka jälkeen valitset Finish. 4. Tämän jälkeen eteesi avautuu suurin piirtein seuraavan kaltainen näkymä: 10

15 5. Valitse juuri luotu projekti vasemmalta aktiiviseksi, jonka jälkeen valitset File > New > File. Varmista, että kentässä Enter or select the parent folder lukee juuri luomasi projektin nimi. Tämän jälkeen kirjoita File name -kenttään HelloWorld.java. Huomioi isot kirjaimet! 6. Nyt sinulle pitäisi aueta työtilaan uusi editoitava ikkuna, johon kirjoitat seuraavan koodin: Sinulla on kaksi vaihtoehtoa tarkistaaksesi, että toimiiko ohjelmasi. Niistä toinen vaihtoehto on suorittaa kääntäminen Eclipsessä ja toinen komentokehoitteessa. Komentokehotteessa suoritettava käännös tapahtuu seuraavaasti: 11

16 1. Käynnistä komentokehote Käynnistä (start) > Suorita (run) > cmd 2. Mene komentokehotteessa siihen paikkaan, johon tallensit projektin. 3. Käännä ohjelma javac -komennolla: > javac HelloWorld.java 4. Suorita ohjelma komennolla: java HelloWorld Ohjelman kääntäminen Eclipsessä: 1. Valitse kyseinen tiedosto, jonka haluat kääntää. 2. Valitse Run > Run, jolloin eteesi avautuu seuraava ikkuna: 3. Tästä ikkunasta valitse Java Application, jonka jälkeen klikkaat New -painiketta. Nyt Java Application:n alle pitäisi ilmestyä HelloWorld niminen valinta. Älä tee tähän mitään muutoksia vaan klikkaa ainoastaan Run -painiketta. 4. Nyt pitäisi Console -ikkunaan ilmestyä ohjelman tuloste, eli Hello World!, kuten seuraavassa kuvassa: 12

17 Näin olet saanut tehtyä ensimmäisen itsenäisen ohjelman, joka tulostaa näytölle tekstin Hello World!. Mitä tämä ohjelma sitten tarkemmin ottaen pitää sisällään? Ohjelman ensimmäinen rivi // Luokka HelloWord on kommentti, jonka Java-kääntäjä jättää huomioimatta. Sinä voit kommentoida ohjelmaasi niin paljon kuin haluat. Kommentoiminen on jopa suotavaa, sillä oikeanlaisella kommentoinnilla pystytään selkeyttämään ohjelmakoodia huomattavasti. Tämän kommenttirivin jälkeen ohjelmassa on määritelty luokan nimi avainsanan class avulla. class HelloWorld Class-avainsanalla annetaan luokalle nimi, joka on luokan yksilöllinen tunniste. Vastaavasti HelloWorld on ohjelman pääluokka, sillä se sisältää pääohjelman eli main() -metodin. On tärkeää, että olet nimennyt tiedoston saman nimiseksi kuin mitä ohjelman pääluokka on, eli tässä tapauksessa HelloWorld.java, koska mikäli et ole toiminut näin, Java-kääntäjä ei pysty kääntämään ohjelmaa. Kun luokka on määritelty, niin sen sisälle tulevat kaikki määritykset ja metodit, jotka kuuluvat kyseiseen luokkaan. Nämä määritykset ja metodit kirjoitetaan aaltosulkujen ( { ja ) väliin. Tätä aaltosulkujen rajamaa aluetta kutsutaan lauselohkoksi. 13

18 class HelloWorld { // Luokan määrittelyn alkaminen { // Lauseloho alkaa. // Muuttujien määrittelyt // Metodit // Lauselohko päättyy. // Luokan määrittely päättyy Itsenäisessä sovelluksessa ohjelman suoritus käynnistetään pääohjelmasta seuraavasti: public static void main(string args[]) { Pääohjelman sijainnilla ei ole merkitystä, vaan Java-tulkki käynnistää ohjelman suorituksen aina main() -nimisestä pääohjelmasta, joten sellainen on löydyttävä jokaisesta itsenäisestä Java-sovelluksesta. Appletit eroavat tässä suhteessa itsenäisistä sovelluksista, sillä ne käyttävät toisennimisiä vakiometodeita. Java-kielen tulostus hoidetaan System.out -luokan println -metodilla (aliohjelmalla). Tulostuslauseelle annetaan merkkijono (String -luokan olio) paramerinä: System.out.println( Hello World! ); Appletit Appletit ovat pieniä Java-ohjelmia, jotka toimivat Internet-selaimissa, joissa on Java-tulkki. Appleteilla on muutamia toiminnallisia rajoitteita tavallisiin sovelluksiin verrattuna. Itseasiassa appletit ovat Java-kielen oliomallin toimivuuden osoitus. Applettien perusominaisuudet toteuttavat Applet -luokka on yksi Javan olioluokka (java.applet.applet). Applettien idea on yksinkertainen, sillä Applet -luokasta peritty olio saa käyttövalmiina kaikki ominaisuudet suoraan Applet -luokalta. 14

19 1. Käynnistä Eclipse 2. Lisää edelliseen projektiin uusi tiedosto, kuten edellä lisättiin ja anna tiedoston nimeksi HelloWorldApplet.java. 3. Kirjoita kyseiseen tiedostoon seuraavanlainen koodi: 4. Tämän jälkeen käännä tämä koodi. Voit kääntää ohjelman, joko komentokehotteessa tai Eclipsessä. Jos käännät ohjelman Eclipsessä sinun tulee luoda nyt uusi toiminto Java Applet vaihtoehdon alle. Tiedoston nimen on oltava täsmälleen sama kuin Applet -luokasta perittävän pääohjelman nimi. Yleensä ohjelman nimi kirjoitetaan virheellisesti kokonaan pienillä kirjaimilla, mutta luokan nimi isoilla alkukirjaimilla. Tällöin Java-appletin kääntäminen tavutiedostoksi ei onnistu, sillä appletin voi suorittaa ainoastaan, jos luokan ja tiedoston nimet ovat täsmälleen samat. Tämän ohjelman rivit 1-8 ovat jälleen kommentteja, jotka jätetään huomioimatta käännösvaiheessa. Ensimmäiset uudet käskyt tulevat esille rivillä 10 ja 11 15

20 import java.applet.*; import java.awt.*; joilla otetaan käyttöön kaikki ohjelmassa käytettävät luokkakirjastot, jolloin saadaan käyttöön kaikki ohjelmassa tarvittavat luokat ja metodit. Tämä import -lause kertoo kääntäjälle, mistä on haettava Java-ohjelmassa käytettäviä luokkia. Yllä olevat luokat kertovat, että Applet-luokka sijaitsee pakkauksessa java.applet ja Graphics-luokka pakkauksessa java.awt. Luokkia voi samassa ohjelmassa olla useita, ja niistä jokainen muodostaa loogisen kokonaisuuden. Seuraavassa on esitetty tämän ohjelman ainoa luokkamäärittely: public class HelloWorldApplet extends Applet { Avainsanaa class seuraava sana määrittelee luokan nimen. Esimerkissa luokan nimi on HelloWorldApplet, joka perii kaikki Applet-luokan ominaisuudet (Extends Applet). Applet-luokkaa käyttämällä WWW-sivuille linkitettävän appletin voi ohjelmoida suhteellisen helposti. Ohjelmoijan ei tarvitse lainkaan ohjelmoida WWWselaimen vaatimia toiminnallisuuksia, vaan Applet-luokka tarjoaa ne valmiina. Avainsana public vaaditaan jokaiseen applettiin, jotta selain voi luoda sovelluksesta esiintymän, jota se kykenee ajamaan. Täten jokaisen Applet-luokasta perityn appletin on aina oltava julkinen (public) luokka, jotta sen voi suorittaa selaimessa. Sen sijaan muuttujat voivat olla myös yksityisiä (private), jolloin niitä ei voi käyttää kuin omasta luokastaan. Alkumäärittelyjen jälkeen voidaan kirjoittaa appletin toiminnallinen koodi paint()-metodiin (paint() -aliohjelmaan). public void paint(graphics g) Edellä esitelty ohjelmarivi esittelee ohjelman tärkean rakennuspalikan, metodin, joka tarkoittaa luokkaan liittyvää funktiota. Jokainen Java-luokka sisältää 16

21 vähintään yhden metodin, joka määrittelee ohjelman ajon aikana suoritettavan komentojoukon. Metodin sisältämät käskyt suoritetaan kutsuttaessa metodia jostain ohjelman osasta. Metodien tarkoitus on jakaa luokan toiminta useisiin pienempiin alikokonaisuuksiin, ja niitä käyttämällä luokasta saa toimivamman. Metodin sisältämä ohjelmakoodi kirjoitetaan lauselohkon sisään. Lauselohko rajataan Java-kielessä aaltosulkeilla C-kielen tapaan. Ohjelmoijan kannattaa sijoittaa aaltosulkuparit editorissa samalle tasolle, jotta vältytään turhilta ohjelmointivirheiltä. Java-kääntäjä ei tarkista kuinka monta tyhjää riviä tai lausetta koodissa on, joten tyhjillä merkeillä, rivinvihdoilla ja välilyönneillä ei ole merkitystä koodin toimivuuden kannalta. Koodin luettavuuden ja selkeyden vuoksi lauselohkon oikealle aukeavaa aaltosulkua seuraavaa koodia kannattaa sisentää 2-4 merkkiä oikealle. Vastaavasti lauselohkon lopettavan aaltosulkeen jälkeen palataan sama sisennetty merkkimäärä vasemmalle. Yleensä kannattaa käyttää vakiosisennystä, jos ohjelmassa käytettava editori sita tukee. paint()-metodissa suoritetaan tekstin piirtaminen näytölle käyttäen draw- String()metodia, jolle annetaan parametreina sekä tulostettava teksti että tekstin tarkat sijoituskoordinaatit appletin piirtopinnalle. Koordinaatiston nollapiste alkaa appletin vasemmasta ylänurkasta. drawstring()-metodi tulostaa piirtopinnalle tekstin "Hello World!". Tämän jälkeen on määritelty, että tekstin tulostaminen alkaa paikasta (20, 40) appletin piirtopinnalla. g.drawstring("hello World!", 20, 40); Metodin toiminta voitaisiin suomentaa seuraavasti: Tulosta merkkijono "Hello World" alkaen appletin vasemmasta yläkulmasta lasketuista X- ja Y - koordinaateista paikkaan (20, 40) käyttäen appletin piirtopinnan (Graphics) metodia drawstring() Appletin liittäminen HTML-dokumenttiin Appletin suorittamiseksi selaimessa on appletti liitettävä HTML-koodiin. Tämä liittäminen koodiin tapahtuu APPLET-elementin avulla. Seuraavas- 17

22 sa on esitelty APPLET-elementin käyttö HTML-koodissa. Sen yleisemmin käytettävät attribuutit ovat: CODE-attribuutti määrittelee HTML-sivulle liitettävän Java-kielisen tulkkausvalmiin tavukoodin nimen (class-tarkenne) ja mahdollisen URLosoitteen, jos Javaappletti ei ole samassa hakemistoissa kuin HTMLdokumentti. WIDTH- ja HEIGHT-attribuutit määrittelevät appletin koon (leveys ja korkeus) pikseleinä HTML-sivulle. Appletti liitetään HTML-koodiin seuraavasti: <HTML> <HEAD> <TITLE> Ensimmainen appletti</title> </HEAD> <BODY> <APPLET code="helloworldapplet.class" width= 300 height= 200 > </APPLET> </BODY> </HTML> Appletit käyttävät parametreja, joilla voi lähettää tietoa suoraan HTMLsivulta. Tällöin on käytettävä PARAM-elementtiä, jolla voi määritellä appletille lähetettävät parametrit seuraavasti: NAME -attribuutilla määritellään appletille lähetettävän muuttujan nimi. VALUE -attribuutilla annetaan nimetylle muuttujalle arvo samassa PARAM-elementissa. Yhdessä PARAM-elementissä voi antaa ainoastaan yhden parametrin arvon. Seuraavassa esimerkissä appletille annetaan kaksi parametriä, jotka ovat kuukausi ja vuosi. 18

23 <HTML> <HEAD> <TITLE> Parametrien syotto Java-appletille</TITLE> </HEAD> <BODY> <APPLET code="paramdemo.class" width=300 height-200> <PARAM name="vuosi" value="1998"> <PARAM name="kuukausi" value="elokuu"> </APPLET> </BODY> </HTML> Seuraavassa on esitelty appletti, joka lukee parametrina annetut merkkijonot. HTML-sivulla annetun parametrin arvon voi lukea getparameter() -funktiolla. // ParamDemo.java - ensimmainen parametrillinen // appletti. Ohjelma lukee HTML-lomakkeella annetut // parametrit ja "piirtaa" ne naytolle appletin // paint()-metodilla. import java.applet.*; import java.awt.*; public class ParamDemo extends Applet { // Maaritellaan kaksi ParamDemo-luokan // jasenmuuttujaa. String vuosi = "alustamaton"; String kuukausi = "maarittelematon"; public void init() { vuosi = getparameter("vuosi"); kuukausi = getparameter("kuukausi"); public void paint (Graphics g) { g.drawstring("vuosi on " + vuosi, 50,50); g.drawstring("kuukausi on " + kuukausi, 50,80); Ohjelmassa on init()-metodi, jossa appletti alustetaan. Esimerkissä HTMLkoodissa annettujen VUOSl- ja KUUKAUSI -parametrien arvot sijoitetaan 19

24 vastaavan nimisiin muuttujiin. Appletin paint() -metodissa tulostetaan muuttujien arvot drawstring() -metodilla koordinaateissa määriteltyihin kohtiin. 5.2 Peruskielioppi Javan perussyntaksi on melko tuttu kaikille C- ja C++-kielillä ohjelmoineille. Jokainen Javan kehittynyt tietotyyppi on olio. Myös kaikki yksinkertaiset tietotyypit, kuten kokonaisluvat tai reaaliluvut, voidaan muuntaa olioiksi. Luokkien ja olioiden tekeminen vaatii kuitenkin normaalia enemmän ohjelman suunnittelua Alkeistietotyypit Java-kielessä kaikki muuttujat ja tietorakenteet ovat ainakin periaatteessa olioita. Alkeistietotyypit (primitive data types) eivät täsmalleen vastaa tätä mallia, koska näillä tyypeillä on standardoitu koko, joka on sama kaikissa Java-tulkin sisältävissä käyttöjärjestelmissä. Alla olevassa taulukossa on lyhyesti esitelty kaikki Java-kielen alkeistietotyypit. Tietotyyppi Selitys Koko byte tavu 8-bittinen short lyhyt kokonaisluku 16-bittinen int tavallinen kokonaisluku 32-bittinen long pitkä kokonaisluku 64-bittinen float epätarkka liukuluku 32-bittinen double tarkka liukuluku 64-bittinen char Unicode-merkki 16-bittinen Java-kielessä ei käytetä lainkaan etumerkittömiä tietotyyppejä (unsigned type). 20

25 5.2.2 Muuttujat Ohjelmoitaessa on helpompi muistaa muistipaikkojen symbolisia nimiä, kuin itse muistipaikkojen osoitteita. Näin ollen ohjelmoitaessa käytetään muuttujia, jotka ovat juuri näitä muistipaikkojen symbolisia nimiä. Javassa ohjelmalle, muuttujalle tai luokalle annettavaa nimeä kutsutaan tunnisteeksi. Seuraavassa esimerkissä määritellään muuttujalle ika jokin arvo: ika = 28; Tässä esimerkissä ika on yksikäsitteinen nimi muuttujalle. Muuttujan ideana on se, että sen arvoa voi myöhemmässä vaiheessa ohjelmaa muuttaa. Tässä esimerkissä muuttujan nimi siis oli ika ja arvo, joka siihen sijoitetaan on 28. Sijoittamisesta huolehtii = -merkki. Muistisääntönä voitaneen sanoa, että muuttujaan sijoitetaan aina kaikkki yhtäsuuruusmerkin oikeallapuolella olevat asiat. Eli sijoittaminen tapahtuu oikealta vasemmalle. Näin ollen siis, jos haluammekin lisätä tähän ikään yhden vuoden, se voitaisiin suorittaa seuraavasti: ika = ; Javassa pitää ennen muuttujan käyttöä määritellä kyseinen muuttuja. Määrittelyllä tarkoitetaan sitä, että kääntäjälle kerrotaan mikä on muuttujan tyyppi ja nimi. Kyseisen esimerkin muuttujan tyyppi voisi olla vaikka kokonaisluku, eli int. Seuraavassa on esitetty miten kyseinen muuttuja määriteltäisiin: int ika; ika = 28; ika = ; // muuttujan määrittely // muuttujan alustus // lisätään ika-muuttujan arvoa yhdellä Javassa yksittäiset alkeismuuttujat (primitive variable) määritellään yleisesti: <tyyppi> <muuttujan nimi> 21

26 Seuraavassa esimerkissä on otettu käsittelyyn reaalilukumuuttujan määrittely sekä muuttujan alustaminen. Esimerkissä myös tulostetaan muuttujan arvo komentoriville, kommentoi rivit: double x; //??? x = 10; //??? System.out.println(x); //??? x = x + 1; //??? Javan muuttujakäsite on lausekielisiä ohjelmointikieliä monipuolisempi. Java sisältää kolmenlaisia muuttujia: ilmentymämuuttujia (instance variable): Javassa luokan tilan määrittelevät ominaisuudet eli attribuutit talletetaan niin kutsuttuihin ilmentymämuuttujiin tai lyhyemmin kenttiin (field). luokkamuuttujia (class variable): Määritellään luokan esittelyn jälkeen, ja on voimassa luokan jokaisessa metodissa. Tämän tyyppistä muuttujaa ei määritellä minkään metodin sisällä, vaan heti luokan esittelyn jälkeen. paikallisia muuttujia (local variable): Määritellään metodien tai jonkin metodissa olevan ohjelmalohkon sisällä, ja ne ovat voimassa vain kyseisen metodin/ohjelmalohkon sisällä. Desimaaliluvuissa käytetään kokonaisosan ja desimaaliosan erottimena desimaalipistettä eikä desimaalipilkkua Kommentit Ovat suotavia ohjelmia kirjoittaessa, sillä niiden avulla voidaan selkeyttää koodia ja ne myös auttavat, kun myöhemmin palaat koodin pariin muistamaan mitä olet tehnyt. Javassa voidaan kommentoida jokin tietty rivi tai sitten isompi alue. Seuraavassa on esitetty Javan kaksi eri kommentointi tapaa: // Tämä kommentti alkaa kautta kautta merkeistä ja päättyy rivin loppuun 22

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

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

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

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

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

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

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

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

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

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

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

Ohjelmoinnin perusteet Y Python

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

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

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat Sisällys 12. Javan toistorakenteet Ylstä toistorakentsta. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirhtä. Silmukan rajat asetettu kierroksen

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

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

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

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

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

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus) VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,

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

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

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

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

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

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

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

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

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

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

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

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

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

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

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

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

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

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--lauseet. Orpo. Valintaa toisin: switch-lause. 11.2 Valintarakenteet Valintarakenteilla ilmaistaan formaalisti, kuinka algoritmin suoritus voi haarautua

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

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

Ohjelmoinnin perusteet, kurssikoe

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

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

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

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

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1 16. Ohjelmoinnin tekniikkaa 16.1 Sisällys For-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. If-else-lause vaihtoehtoisesti

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

Lisätiedot

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin Sisällys 17. Ohjelmoinnin tekniikkaa for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti

Lisätiedot

7/20: Paketti kasassa ensimmäistä kertaa

7/20: Paketti kasassa ensimmäistä kertaa Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

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

17. Ohjelmoinnin tekniikkaa 17.1

17. Ohjelmoinnin tekniikkaa 17.1 17. Ohjelmoinnin tekniikkaa 17.1 Sisällys for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti

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

Ohjelmointi 1 / syksy /20: IDE

Ohjelmointi 1 / syksy /20: IDE Ohjelmointi 1 / syksy 2007 10/20: IDE Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Tämän luennon rakenne

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

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

Sisällys. 15. Lohkot. Lohkot. Lohkot

Sisällys. 15. Lohkot. Lohkot. Lohkot Sisällys 15. Lohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.1 15.2 Lohkot Aaltosulkeet

Lisätiedot

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100 Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).

Lisätiedot

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

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public) Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin

Lisätiedot

19. Olio-ohjelmointia Javalla 19.1

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

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

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla 2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella

Lisätiedot

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

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

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

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

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

Muuttujien roolit Kiintoarvo cin >> r;

Muuttujien roolit Kiintoarvo cin >> r; Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,

Lisätiedot

Hohde Consulting 2004

Hohde Consulting 2004 Luento 5: XQuery AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XQuery XQuery uudet funktiot sekvenssit muuttujat Iterointi järjestys suodatus järjestäminen Ehtorakenteet Muita toimintoja www.hohde.com

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

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

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

Olio-ohjelmointi Syntaksikokoelma

Olio-ohjelmointi Syntaksikokoelma C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tällä luennolla Algebralliset tietotyypit Hahmonsovitus (pattern matching) Primitiivirekursio Esimerkkinä binäärinen hakupuu Muistattehan...

Lisätiedot

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Sisällys 3. Pseudokoodi Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet: Valinta if- ja if--rakenteilla. oisto while-, do-while- ja for-rakenteilla. 3.1 3.2 Johdanto

Lisätiedot

Oliot viestivät metodeja kutsuen

Oliot viestivät metodeja kutsuen 6. Metodit 6.1 Sisällys Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit). Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen

Lisätiedot

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Ohjelmointi 1 C#, kevät 2013, 2. tentti ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla

Lisätiedot

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

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

TIE Principles of Programming Languages CEYLON

TIE Principles of Programming Languages CEYLON TIE-20306 Principles of Programming Languages CEYLON SISÄLLYSLUETTELO 1. YLEISTIETOA KIELESTÄ JA SEN KEHITTÄMISESTÄ... 1 2. CEYLONIN OMINAISUUKSIA... 2 2.1 Modulaarisuus... 2 2.2 Tyypit... 2 2.3 Muita

Lisätiedot

58131 Tietorakenteet ja algoritmit (syksy 2015)

58131 Tietorakenteet ja algoritmit (syksy 2015) 58131 Tietorakenteet ja algoritmit (syksy 2015) Harjoitus 2 (14. 18.9.2015) Huom. Sinun on tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. 1. Erään algoritmin suoritus vie 1 ms, kun syötteen

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset 815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

Taulukoiden käsittely Javalla

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

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance) Sisällys JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys Periytyminen (inheritance) Näkyvyys (visibility) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E. Hyvönen: Java Osa

Lisätiedot

Mitä poikkeuskäsittely tarkoittaa?

Mitä poikkeuskäsittely tarkoittaa? Poikkeuskäsittely Mitä poikkeuskäsittely tarkoittaa? Poikkeuskäsittelyluokkien hierakkia Poikkeuksen sieppaaminen Mihin järjestykseen try-catch-lauseen ExceptionType-poikkeukset laitetaan? Poikkeuksen

Lisätiedot

Johdatus Ohjelmointiin

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