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, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

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

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

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

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

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

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

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

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

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

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

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

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

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

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ JAVA alkeet JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ ja Javascriptin kanssa. Huom! JAVA ja JavaScript eivät silti ole sama asia, eivätkä edes sukulaiskieliä.

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

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

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

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

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 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

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

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

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

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

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

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

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

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

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

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

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

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

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

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

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

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

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

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

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

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

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

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

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

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

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

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

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

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

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

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

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

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

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

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

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

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

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

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN

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

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

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

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3 16. Lohkot 16.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.2 Lohkot Kaarisulut

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

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

Kielioppia: toisin kuin Javassa

Kielioppia: toisin kuin Javassa Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien

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

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

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

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

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

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

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

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

Tutoriaaliläsnäoloista

Tutoriaaliläsnäoloista Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

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

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

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Toistorakenne (while, do-while, for) 1 While- lause while-lauseen rakenne on seuraava: while (ehtolauseke) lause Kun ehtolausekkeen arvo on totta, lause suoritetaan. Lause suoritetaan

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

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap Tietorakenneluokkia ja -rajapintoja Java tarjoaa laajan kokoelman tietorakennerajapintoja ja - luokkia. Aiemmin

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

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

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

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

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

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

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

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

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus Sisällys 19. Olio-ohjelmointia Javalla Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit

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

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