J2ME MIDLET PELISOVELLUKSEN SUUNNITTELU JA TOTEUTUS NOKIAN 7210 PUHELIMEEN

Koko: px
Aloita esitys sivulta:

Download "J2ME MIDLET PELISOVELLUKSEN SUUNNITTELU JA TOTEUTUS NOKIAN 7210 PUHELIMEEN"

Transkriptio

1 T a m p e r e e n A m m a t t i k o r k e a k o u l u L i i k e t a l o u s Tutkintotyöraportti J2ME MIDLET PELISOVELLUKSEN SUUNNITTELU JA TOTEUTUS NOKIAN 7210 PUHELIMEEN Satu Pietarinen

2 2 Tekijä(t): Koulutusohjelma(t): Tutkintotyön nimi: Satu Pietarinen Tietojenkäsittely J2ME MIDlet pelisovelluksen suunnittelu ja toteutus Nokian 7210 puhelimeen Title in English: Designing and producing the J2ME MIDlet game application for the Nokia 7210 mobile phone Työn valmistumiskuukausi ja -vuosi: tammikuu 2004 Työn ohjaaja: Paula Hietala Sivumäärä: 56 TIIVISTELMÄ J2ME on alustariippumaton ohjelmistoympäristö matkapuhelinten ja kämmentietokoneiden sovellusten kehittämistä varten. Sen avulla on mahdollista tehdä Java-kielisiä MIDlet-sovelluksia, jotka toimivat useiden eri valmistajien laitteissa. Sovellukset ovat ladattavissa päätelaitteelle Internet-verkosta tai pöytätietokoneelta. Tutkintotyö on Nokian keväällä 2003 julkaiseman MIDlet-sovelluskilpailun määrittelyn mukaan tehty pelisovellus Nokian puhelimeen. Työn tavoitteena oli suunnitella ja toteuttaa päätelaitteella toimiva pelisovellus. Sovelluksen sisällön suunnittelussa noudatettiin pelisuunnittelun yleisiä ohjeita. Sovelluksen ulkoasun suunnittelun tavoitteena oli tehdä mobiililaitteen pienikokoiselle näytölle soveltuvaa grafiikkaa. Sovelluksesta tehtiin helppokäyttöinen ja sen käyttöliittymästä yhtenevä muiden päätelaitteen pelisovellusten kanssa. Työn toteutuksen aikana pelin toiminnallisuutta testattiin emulaattorissa ja päätelaitteella. Testaus osoittautui erittäin tärkeäksi osaksi työtä. Tutkintotyön kirjallisessa osuudessa käsitellään J2ME-arkkitehtuuria ja sen erityispiirteitä, MIDletsovelluksen sisältöä ja käytännön ohjelmointia. Kartoitusosio sisältää käyttäjän tarpeiden kartoittamisen sekä sovelluksen suunnittelulle ja toteutukselle asetettujen rajoitusten tarkastelua. Suunnitteluvaiheessa esitellään sovelluksen sisältöä, rakennetta, toiminnallisuutta, visuaalista ilmettä ja suunnittelun ongelmia. Sovelluksen toteutusosassa esitellään käytännön peliohjelmointia ja sovelluksen teossa esiintyneitä ongelmia. Pelisovellus on tutkintotyön liitteenä levykkeellä ja se on asennettavissa päätelaitteelle JAD-tiedostona. Avainsanat: J2ME MIDlet Java Ohjelmointi Pelisovellus

3 3 Sisällysluettelo 1 Johdanto J2ME (Java TM 2, Micro Edition) J2ME:n historia J2ME:n arkkitehtuuri Virtuaalikone KVM (KiloByte Virtual Machine) KVM:n rajoitukset KVM ja luokkien tarkistus Tietoturva J2ME konfiguraatiot Connected Device Configuration (CDC) Connected Limited Device Configuration (CLDC) CLDC kirjastot Kansainvälisyys Generic Connection Framework (GCF) Kuvio 4 Esimerkki Connector-luokan käytöstä (Kontio 2002: 44) Profiili Mobile Information Device Profile (MIDP) Record Management System ( RMS ) MIDP -käyttöliittymäluokat MIDlet MIDletin elinkaari ja metodit MIDletin luominen MIDlet ja Applet Kartoitus Käyttäjän tarpeet Tekniset rajoitteet suunnittelulle ja toteutukselle Pelisuunnittelu Pelin sisältö Pelin rakenne Sovelluksen visuaalinen ilme Suunnittelun ongelmat Sovelluksen toteutus Toiminnallisuuden kuvaus Sovelluksen käyttöliittymä Screen Display Form Menu -valikot ja käskyt Image Double Buffering Canvas Spritet Animointi PNG (Picture Network Graphic) Spriten piirto Törmäystarkistus Optimointi Monisäikeinen pelin ohjelmointi Thread-luokan metodit Runnable-rajapinta Säikeiden prioriteetit Säikeen tilat Synkronointi wait() ja notify() -metodit Timer Ongelmat sovellusta tehtäessä Testaus...51

4 6.8 Sovelluksen lataaminen päätelaitteelle Havaintoja Johtopäätöksiä...54 Liitteet...57 Liite 1: Sanasto...57 API (Application Programming Interface) kokoelma luokkia joita voidaan sovelluksessa käyttää. Yhdessä ne muodostavat kirjaston, jota kutsutaan API- rajapinnaksi...57 CLDC (Connected Limited Device Configuration) on J2ME-konfiguraatio. CLDC määrittelee Java-kielen, Java virtuaalikoneen (KVM), rajapinnat (API:t) syöttö- ja tulostustoimintojen suorittamiseen, perus verkkotuen (GCF) ja tietoturvan...57 J2ME (Java 2, Micro Edition) on kokoelma määrityksiä ja teknologioita jotka tukevat Java-kieltä. J2ME kattaa laajan valikoiman laitteita kämmentietokoneista auton navigaatio järjestelmiin. J2ME jaetaan konfiguraatioihin ja profiileihin, jotka määrittelevät Java ympäristön tietyn tyyppiselle laitteelle MIDlet on Java-kielinen MIDP-sovellus joka toimii päätelaitteella MIDlet Suite (eli JAR) sisältää useamman MIDlet-sovelluksen pakattuna yhteen JAR-tiedostoon. Päätelaitteella voi olla useita JAR-paketteja

5 5 1 Johdanto Tutkintotyö on Nokian keväällä 2003 julkaiseman sovelluskilpailun määrittelyjen mukaan tehty Java-kielinen (MIDlet) pelisovellus Nokian 7210 puhelimeen, joka tukee Java 2 Micro Edition (J2ME) -teknologiaa. Sovellus sai Nokian määritysten mukaan olla kooltaan enintään 64 kilotavua. Pelin grafiikan tuli soveltua käytettäväksi päätelaitteen 128x128 pikselin näytöllä ja päätelaite käyttää KVM-virtuaalikonetta, MIDP 1.0 -profiilia ja CLDC 1.0 -konfiguraatiota. Tutkintotyön tavoitteena oli tehdä päätelaitteessa toimiva MIDlet pelisovellus ja selvittää, miten MIDlet-ohjelmointi eroaa pöytäkoneelle tehdyn pelisovelluksen ohjelmoinnista. Työssä esitellään J2MEteknologiaa ja käytännön peliohjelmointia. Työn on tarkoitus olla käytännön apuna uusille MIDlet-ohjelmoijille ja tuoda esiin niitä asioita, joihin tulisi kiinnittää huomiota matkapuhelinten pelisovelluksia kehitettäessä. Tutkintotyö on tehty sovelluskehittäjän näkökulmasta. Tutkintotyönä tehty sovellus on toimintapeli nimeltä SpaceBall ja se on tehty laitesuuntautuneille käyttäjille, joille on tärkeää, että puhelimessa on mahdollisimman paljon erilaisia ominaisuuksia kuten esim. pelejä. Se soveltuu pelattavaksi kaiken ikäisille henkilöille ja molemmille sukupuolille. Pelin toteutus on tehty englannin kielellä. Sovelluksen peli-idea ja käyttöliittymä ovat yksinkertaiset ja helppokäyttöiset. Pelin toimintaidea perustuu puhelimen näppäimistöltä tapahtuvaan käsi - silmä koordinaatiokykyyn. Sovellus on testattu toimivaksi pöytäkoneella Nokian 6310i MIDP SDK Beta 0.9 -emulaattorissa ja Nokian 7210 puhelimessa. Tutkintoyö aloitettiin tutustumalla matkapuhelimissa pelattaviin peleihin, J2ME MIDlet ohjelmointia käsittelevään kirjallisuuteen ja Borlandin JBuilder-ohjelmaan, johon on liitetty Nokia Developer's Suite kehitysympäristö. Tutkintotyössä perehdytään ensin J2ME teknologiaan ja sen arkkitehtuuriin. Tämän jälkeen tutkintotyössä käsitellään tutkintotyönä tehdyn pelisovelluksen suunnittelun ja toteutuksen eri vaiheita, sekä ohjelmointitekniikoita.

6 6 2 J2ME (Java TM 2, Micro Edition) 2.1 J2ME:n historia Ensimmäisissä matkapuhelimissa oli mukana ohjelmisto, jota käyttäjä ei itse pystynyt muokkaamaan. Matkapuhelimien ohjelmat eivät olleet yhteensopivia muiden laitevalmistajien kanssa, eivätkä käyttäjän siirrettävissä tai päivitettävissä kuten tietokoneissa. Kun haluttiin käyttöön uusi sovellus, oli ostettava kokonaan uusi laite. Matkapuhelinten laitevalmistajat ja Sun Microsystems olivat samaa mieltä siitä, että alustasta riippumaton Java-ohjelmointikieli mahdollistaisi samojen ohjelmien käyttämisen eri valmistajien laitteissa. Matkapuhelimet asettivat kuitenkin vähäisten resurssiensa takia omat vaatimuksensa ja niihin täytyi suunnitella aivan uusi Java-ympäristö. Sunin ensimmäinen ratkaisu oli kehittää sen aikaisesta (1997) alustasta Java AE:sta (Java Application Environment) kolme uutta teknologiaa käytettäviksi erilaisissa laitteissa. Nämä teknologiat olivat Personal Java AE, Embedded Java AE sekä Java Card. Jokaiselle laitekategorialle tehtiin sopiva virtuaalikone ja rajoitettiin mukana tulevien luokkakirjastojen määrää. Näiden teknologioiden ongelmana kuitenkin oli, että ne eivät mainittavasti tukeneet ohjelmistojen siirrettävyyttä eri laitevalmistajien laitteiden välillä (Sun 1998). Vuonna 1998 Sun julkisti Java 2:n ja kehitysympäristöt jaettiin kuvan (Kuvio 1) mukaisesti kolmeen erilaiseen kokonaisuuteen niiden käyttötarkoituksen mukaan. Nämä Java alustat ovat: J2EE (Java 2 Enterprise Edition), J2SE (Java 2 Standard Edition) ja J2ME (Java 2 Platform, Micro Edition). (Muchow 2002.) Server Workstation, Laptop Communicator, Net TV Pager, SmartPhone Smartcard PDA J2EE J2SE CDC J2ME CLDC Java Language HotSpot JVM CVM KVM CardVM Kuvio 1 Java arkkitehtuuri ja kohde alustat (Kontio 2002: 4)

7 7 J2SE tunnettiin aiemmin pelkkänä Javana. Se on suunniteltu työasemien sovellusten kehittämiseen ja se sisältää kaikki perus Java-luokat. J2EE on näistä kolmesta kehitysympäristöstä laajin. Se on kehitetty palvelimille ja yritysten kokonaisvaltaisten palvelujen tietojenkäsittelyyn. Näitä palveluja ovat mm. online-kaupankäynti, asiakashallinta- ja kirjanpito-järjestelmät. J2EE sisältää myös sisäänrakennetun tuen servlet-, JSP- ja XML-ohjelmoinnille. J2ME on modulaarinen Java-ympäristö, joka on suunniteltu laitteille, joiden käytössä on vähän muistia, pieni prosessori ja pienikokoinen näyttö kuten esim. kämmentietokoneet ja matkapuhelimet (Muchow 2002). Kuviosta 1 näkyy myös, että J2EE:tä käytetään palvelimien toimintojen kehittämiseen, kun taas J2SE ja J2ME on suunniteltu kehittämään yksittäisiä sovelluksia tai ratkaisuja, jotka käyttävät J2EE-teknologialla tehtyjä palvelin-sovelluksia (Kontio 2002: 4). 2.2 J2ME:n arkkitehtuuri J2ME jakaa laitteet eri ryhmiin horisontaalisesti laitteistoresurssien mukaan, sekä vertikaalisesti niiden käyttötarkoitusten mukaan. Samassa vertikaalisessa ryhmässä olevilla laitteilla voi kuitenkin olla erikokoiset laitteistoresurssit, jolloin ne eivät kuulu samaan horisontaaliseen ryhmään. J2ME:n päämääränä on tukea jo markkinoilla olevia laitteita siten, että jokaisen laitteen Java-ympäristö sisältäisi vain ne ominaisuudet, joita kyseisellä laitteella tarvitaan. Tästä syystä J2ME:stä ei ole olemassa vain yhtä toteutusta. J2ME on Java-ympäristö, joka kootaan osista laitteen ominaisuuksien ja käyttötarkoituksen mukaan. Näitä osia ovat konfiguraatiot ja profiilit, jotka perustuvat edellä kuvattuun laitteiden luokitteluun. (Kontio 2002: 5.) J2ME-konfiguraatio määrittelee virtuaalikoneen, joka toimii kuvan (Kuvio 2) mukaisesti laitteiston varusohjelmakerroksen päällä. Konfiguraatio määrittää myös joukon luokkakirjastoja, jotka sisältävät vain kaikki tarpeelliset ja olennaiset luokat. J2ME-konfiguraatioita on kaksi (Sun 2000a): Connected Device Configuration (CDC) ja Connected Limited Device Configuration (CLDC).

8 8 Sama konfiguraatio voi kattaa käyttötarkoitukseltaan aivan erityyppisiä laitteita, kuten esim. matkapuhelimia ja pesukoneita. Ei ole tarkoituksenmukaista, että pesukoneen ohjelmia käytettäisiin matkapuhelimessa tai toisinpäin. Koska konfiguraatio ei huomioi erilaisten laitteiden erikoistarpeita, tätä tarkoitusta varten on kehitetty profiilit. Profiilit määritellään aina tietyn konfiguraation päälle ja ne laajentavat konfiguraation luomaa Java-ympäristöä. (Sun 2000a.) Sovelluskerros (Midlet) Profiilikerros (MIDP) Konfiguraatiokerros (CLDC) Virtuaalikonekerros (KVM) Laitteiston varusohjelmistokerros Kuvio 2 J2ME arkkitehtuuri (Mahmoud 2002: 4) Profiilit määritellään aina JCP:n (Java Community Process) kautta yhdessä Sun:in, sekä laitevalmistajien kanssa (Sun 2001a). Profiili määrittelee rajapinnat ja luokkakirjastot, joita tarvitaan hyödyntämään kaikki kyseisen laitteen tarjoamat ominaisuudet (Sun 2000b). Profiili mahdollistaa myös ohjelmien siirrettävyyden laitteesta toiseen. Ohjelma luodaan profiilin päälle ja se käyttää vain ja ainoastaan tämän profiilin tarjoamia rajapintoja. Ohjelma toimii kaikissa laitteissa joissa kyseinen profiili on toteutettu. Profiilien lisäksi laitevalmistajalla on mahdollisuus luoda omia rajapintoja. Niiden avulla ohjelmoija pääsee käsiksi laitteen ominaisuuksiin, joita yksikään konfiguraatio tai profiili ei tue. Tämänkaltaisten rajapintojen käyttö tosin vaikeuttaa ohjelman siirrettävyyttä toisiin laitteisiin. (Sun 2002a.) Matkapuhelinten käyttämälle CLDC-konfiguraatiolle on tällä hetkellä määritelty ainoastaan yksi profiili: MIDP (Mobile Information Device Profile). MIDP-määritys antaa laite- ja ohjelmistovalmistajille varsin vapaat kädet tehdä minimivaatimukset täyttävä toteutus. Päätelaitteelta täytyy löytyä vähintään: verkkoyhteys, tietueille perustuva tallennusjärjestelmä ja lcdui (liquid crystal display user interface) -määritystä noudattava käyttöliittymä (Muchow 2002).

9 9 2.3 Virtuaalikone KVM (KiloByte Virtual Machine) J2ME tarvitsee sovellusten suorittamiseen Java-alustan eli virtuaalikoneen. Matkapuhelimissa käytettävä virtuaalikone on nimeltään KVM (KiloByte Virtual Machine). Se on pienikokoinen ja helposti siirrettävä virtuaalikone (Kontio 2002: 29). Siitä on jätetty pois joitakin muiden virtuaalikoneiden ominaisuuksia, joiden ei ole katsottu olevan tarpeellisia kohdelaitteissa. Näin virtuaalikonetta tukevan luokkakirjaston joukkoa on saatu pienennettyä, joka puolestaan mahdollistaa virtuaalikoneen päälle sijoittuvan konfiguraation (CLDC) toimimisen pienemmässä tilassa (Sun 2000a). KVM on kirjoitettu C-kielellä, joten se on helposti siirrettävissä erilaisille alustoille, joille löytyy C-kielinen kääntäjä. KVM voi ladata luokkia luokka hakemistosta tai JAR (Java Archive) -tiedostoista (Mahmoud 2002: 22) KVM:n rajoitukset KVM-virtuaalikoneesta on olemassa useita eri versioita. Kun KVMvirtuaalikone toimii CLDC-konfiguraation kanssa on siitä poistettu ominaisuuksia, jotka ovat joko liian kalliita toteuttaa tai joiden olemassaolo toisi tietoturva-ongelmia (Mahmoud 2002: 21): CLDC:tä käyttävillä laitteistolla ei ole tukea liukuluvuille. CLDC perustaisissa sovelluksissa ei siis voida käyttää liukulukuja, kuten float tai double. CLDC ja MIDP sisältävät tuen säikeille, koska suurin osa MIDPsovelluksista perustuu säikeille. Ne eivät kuitenkaan tue säie ryhmiä tai ns. demoni säikeitä (daemon threads). CLDC rajapinta ei sisällä Object.finalize()-metodia, eli resursseja ei voida sulkea ennen kuin olio on kerätty roskiin. Ajonaikaisille virheille CLDC määrittelee vain kolme virheluokkaa: java.lang.error, java.lang.outofmemoryerror ja java.lang.virtualmachineerror. Ei-ajonaikaiset virheet käsitellään laitteesta riippuen joko sulkemalla sovellus, tai uudelleen käynnistämällä laite. KVM ei sisällä JNI:tä (Java Native Interface), koska se veisi liikaa muistia kohdelaitteessa ja toisi lisäksi tietoturva ongelmia. Tämä aiheuttaa sen, ettei sovelluksia ohjelmoitaessa voida käyttää mitään natiivirajapinnan kuvakkeita, tai esim. puhelimen soittoääniä. Java-virtuaalikoneessa, joka tukee CLDC:tä, täytyy olla sisäänrakennettu luokkalataaja, jota ei voi tietoturvan takia

10 ylikirjoittaa tai korvata käyttäjän toimesta. Sovellus ei voi vaikuttaa siihen kuinka luokat ladataan, koska luokkalataajan voi määritellä ja tuottaa vain ajonaikainen järjestelmä KVM ja luokkien tarkistus J2SE:n Java-virtuaalikoneessa on luokkatarkistaja, joka on vastuussa ajonaikana virheellisten luokkien hylkäämisestä. Tämä tarkistus on aikaa vievää ja siihen tarvitaan kilotavua ajonaikasta muistia. KVM:n muistin koko on kilotavua. Rajoitetun muistin takia KVM:n suunnittelijat päättivät siirtää suurimman osan tarkistuksesta päätelaitteen sijaan palvelin-koneelle, josta sovellus ladataan. Tätä toisella laitteella tapahtuvaa tarkistusta kutsutaan esitarkistukseksi (preverification). Esitarkistuksen tuloksena saadut luokka-tiedostot sisältävät ylimääräistä tietoa varmistamassa, että ajonaikainen tarkistaja voi suorittaa työnsä minimaalisella muistilla ja mahdollisimman nopeasti. (Mahmoud 2002: 22.) Tietoturva CLDC tietoturva on tiukempi kuin J2SE:ssä. Tämä tietoturvamalli on jakautunut kahteen alueeseen: virtuaalikonetason ja sovellustason tietoturvaan. Virtuaalikonetasolla edellisessä luvussa kuvattu esitarkistus varmistaa, ettei luokan tavukoodi sisällä viittauksia virheellisiin muistipaikkoihin, eikä sovellus pysty vahingoittamaan laitetta, jolla ne toimivat. Sovellustasolla KVM sisältää yksinkertaisen ns. hiekkalaatikko tietoturvamallin, jossa sovellus toimii suljetussa ympäristössä. Tällöin sovellus voi kutsua vain laitteen tukemia luokkia. (Mahmoud 2002: 23.) 2.4 J2ME konfiguraatiot Connected Device Configuration (CDC) CDC-konfiguraatio on tarkoitettu lähinnä seuraavan sukupolven laitteisiin, joissa on paljon laitteistoresursseja ja monipuoliset hallintalaitteet. Tällaisia laitteita ovat mm. television digitaalivastaanottimet, Internet televisiot, kehittyneemmät kommunikointivälineet sekä autojen viihde- ja navigointi-järjestelmät. (Sun 2001b.)

11 Connected Limited Device Configuration (CLDC) CLDC on konfiguraatio laitteille, joilla on rajoitetummat resurssit kuin CDC:tä käyttävillä. Tyypillisiä tämän kaltaisia laitteita ovat matkapuhelimet, PDA- ja hakulaitteet. Näille laitteille on ominaista, että niiden käyttömuistin koko on kilotavua, näyttö on kooltaan pieni ja tehonlähteenä käytetään akkua (Muchow 2002). Laitteita valmistetaan markkinoille suuria määriä ja laitteistoresurssit on pidettävä pieninä, jotta laitekustannukset pysyisivät mahdollisimman alhaisina (Sun 2000b). CLDC:n tarkoituksena oli luoda Java-ympäristö, joka toteuttaa suurimman osan Java standardista, mutta tarvitsee toimiakseen mahdollisimman vähän muistia. CLDC määrittelee tällä hetkellä sitä käyttäville laitteille seuraavat toiminnallisuudet: Java-kieli, virtuaalikone, ydinkirjastot, rajapinnat erilaisten syöttö- ja tulostustoimintojen suorittamiseen, perus verkkotuki ja tietoturva (Mahmoud 2002: 20). CLDC-konfiguraation tärkeimpinä ominaisuuksina on pidetty langattomien verkkoyhteyksien tukemista ja dynaamista Java-ohjelmien latausta laitteille. Lisäksi CLDC mahdollistaa laitteille usean tyyppisten siirrettävien sovellusten rakentamisen. Tällaisia sovelluksia ovat mm. hyötyohjelmat ja verkkosovellukset (esim. uutisten luku ja sähköposti sovellukset). Yksi merkittävin ryhmä J2ME:lle koodattavista ohjelmista ovat pelit (Kontio 2002: 6). CLDC ei määrittele käyttöliittymää, sitä miten ohjelmat asennetaan, käynnistetään tai poistetaan laitteilta (ohjelmistojen elämänkaari). Se ei anna tukea eri hallintalaitteille (kosketusnäytöt ym.), eikä tapahtuman käsittelylle. Nämä ovat ominaisuuksia, joita toteuttavat CLDC:n päälle sijoittuvat profiilit (Sun 2000b) CLDC kirjastot CLDC kirjaston ohjelmointirajapinnat (API) voidaan jaotella luokkiin, jotka ovat osajoukko J2SE API:sta ja luokkiin, jotka on kehitetty erityisesti CLDC:tä varten. J2SE rajapinnat vaativat noin 20 megatavua muistia, joka ylittää pienikokoisten laitteiden muistin kapasiteetin. Tästä syystä CLDC käyttää vain Taulukossa 1 lueteltuja luokkia, jotka periytyvät J2SE alustasta (Mahmoud 2002: 23). Matkapuhelinten virheenkäsittely ominaisuudet ovat rajoitetut ja ne reagoivat eri tavalla virhetilanteisiin: yksi laite antaa virheilmoituksen, kun taas toinen suorittaa automaattisen ohjelman keskeytyksen (Kontio 2002: 43). Kaikkien J2SE-alustasta perittyjen luokkien täytyy käyttää täsmälleen samoja poikkeuksia kuin alkuperäisten J2SE-luokkien, joten CLDC-konfiguraatiolle periytyvät myös Taulukossa 2 luetellut poikkeusja virheluokat.

12 Erityisesti CLDC:tä varten suunnitellut rajapinnat ovat: javax.microedition.io, joka määrittelee GCF (Generic Connection FrameWork) -tietoliikenne toteutuksen ja javax.microedition.lcdui, joka sisältää korkean tason käyttöliittymäluokat (Kontio 2002: 40). Taulukko 1 CLDC-konfiguraation perityt J2SE luokat 12 Paketti java.lang java.io java.util Luokka Boolean, Byte, Character, Class, Integer, Long, Math, Object, Runnable, Runtime, String, StringBuffer, System, Thread, Throwable ByteArrayInputStream, ByteArrayOutputStream, DataInput, DataInputStream, DataOutput, DataOutputStream, InputStream, InputStreamReader, OutputStream, OutputStreamWriter, PrintStream, Reader, Writer Calendar, Date, Enumeration Hashtable, Random, Stack Time, Vector PACKAGE CLASS Taulukko 2 CLDC-konfiguraation perityt J2SE poikkeus- ja virheluokat Ta Paketti Luokka java.lang java.io java.util ArithmetricException, ArrayIndexOutOfBoundsException, ArrayStoreException, ClassCastException, ClassNotFoundException, Error, Exception, IllegalAccessException, IllegalArgumentException, IllegalMonitorStateException, IllegalThreadStateException, IndexOutOfBoundsException, InstantiationException, InterruptedException, OutOfMemoryException, NegativeArraySizeException. NumberFormatException, NullPointerException, RuntimeException, SecurityException, StringIndexOutOfBoundsException, VirtualMachineError EOFException, IOException, InterruptedIOException, UnsupprotedEncodingException, UTFDataFormatException EmptyStackException, NoSuchElementException

13 Kansainvälisyys Laitteissa, jotka käyttävät CLDC:tä tulisi huomioida kansainvälisyys. Sovelluksen tulee varautua eri kieliversioille, fonteille jne. Käytännössä tämä tarkoittaa sitä, että sovelluksen ohjelmakoodiin ei tulisi kirjoittaa suoraan esim. käyttäjälle ohjelman aikana ilmestyviä ilmoituksia koskien käytettävää kieltä. Kielivalintojen tulisi tapahtua käyttäjän toimesta ikonien tai valikon kautta. CLDC:lle kansainvälistäminen tarkoittaa, että järjestelmän tulee tukea Unicode-merkkijärjestelmää, johon on olemassa tuki InputStreamReader ja OutputStreamWriter luokissa. (Kontio 2002: 43-44) Generic Connection Framework (GCF) CLDC:n verkkoyhteyksien muodostaminen perustuu Generic Connection Framework (GCF) -kehykseen. Tässä kehyksessä kaikki verkkoyhteydet muodostetaan Connector-luokan open(string)-metodin avulla (Kontio 2002: 44). Verkkoyhteyden tieto siirretään yksinkertaisena merkkijonona ja yhteyden tyyppiä on helppo vaihtaa tarvittaessa. Näin sovelluksen koodi pysyy samana, riippumatta siitä mitä protokollaa käytetään (Mahmoud 2002: 27). Metodia open(string) käytetään kuvan (Kuvio 3) esimerkkien mukaisesti seuraavalla syntaksilla: Connector.open("protokolla:osoite;parametrit"); Connector.open( ); Connector.open( socket:// :8080 ); Connector.open( datagram:// :8090 ); Connector.open( comm.:0;baudrate=9600 ); Connector.open( file://j2me.doc ); //HTTP //socket //datagrammi //sarjaportti //tiedosto Kuvio 3 Esimerkkejä protokollien käytöstä (Kontio 2002: 44) Connector-luokkaa käytetään kuvan (Kuvio 4) mukaisesti. Metodin open(string) epäonnistuminen laukaisee IOException-poikkeuksen ja avatut yhteydet suljetaan finally-lohkossa.

14 14 Connection c = null; try{ c = Connector.open( ); } catch (IOException io{} //yhteys suljetaan finally{ try{ if (c!=null) c.close(); } catch (IOException io){} } Kuvio 4 Esimerkki Connector-luokan käytöstä (Kontio 2002: 44) Connector-luokan lisäksi GCF sisältää kuvassa (Kuvio 5) näkyvät erikoistuneet rajapinnat. Connection rajapinta sisältää vain kaksi metodia: open() ja close(). Rajapinnat perivät niiden yläpuolella olevien rajapintojen metodit. Connection StreamConnectionNotifier InputConnection OutputConnection DatagramConnection StreamConnection ContentConnection Kuvio5 Generic Connection Framework -rajapinnat (Kontio 2002: 45) InputConnection-rajapinnan metodeilla avataan tietoa lukemista varten, OutputConnection-metodeilla tietoa kirjoitetaan ja StreamConnectionmetodi käyttää edellä mainittuja metodeja perimällä ne. StreamConnectionNotifier-rajapinnan metodit odottavat ensin yhteyden saamista, jonka jälkeen ne palauttavat StreamConnection-rajapinnan. ContentConnection-rajapinta käsittelee yhteyden metatietoja ja DataGramConnection-rajapinta lähettää, tai vastaanottaa datagrammeja. (Kontio 2002: 45.)

15 15 CLDC ei sisällä tapaa toteuttaa mitään verkkoyhteyteen tarvittavaa protokollaa, vaan se on jätetty profiilin tehtäväksi. MIDP-profiili lisää HttpConnection-rajapinnan, joka mahdollistaa HTTP-yhteyden. MIDPprofiili voi myös tukea socket-kantoja tai datagrammeja (Internet verkon paketti). Näitä käytettäessä on kuitenkin muistettava, että sovellus ei välttämättä toimi kaikissa päätelaitteissa, tai kaikissa verkoissa. (Kontio 2002: 44.) 2.5 Profiili Mobile Information Device Profile (MIDP) J2ME:tä varten on kehitetty Mobile Information Device -profiili (MIDP), jonka ensisijaisena tehtävänä on määritellä rajapinta ohjelmistokehittäjiä varten. MIDP sijoittuu päätelaitteelle kuvan (Kuvio 6) mukaisesti. MIDP-sovellusta kutsutaan nimellä MIDlet. Sovellukset voivat olla yksittäisiä MIDlettejä tai ns. MIDlet Suite, joka sisältää useamman MIDlet-sovelluksen pakattuna yhteen JAR-tiedostoon. Päätelaitteella voi olla useita JAR-paketteja, mutta tietyn sovelluksen kaikkien luokkien on oltava samassa paketissa (Kontio 2002: 47). Kuvio 6 MIDP arkkitehtuuri (Mahmoud 2003) MIDP:tä käyttävien laitteiden resursseja rajoittavat: laskentateho, muistin määrä, verkkoyhteyden nopeus ja laatu, sekä näytön koko. MIDP Specification 1.0 -määrityksessä on sitä käyttäville laitteille asetettu minimirajat. Laitteiden näyttöjen tulee täyttää seuraavat vaatimukset: näytön koon on oltava vähintään 96x54 pikseliä, värimäärän kuvauksen tulee olla vähintään 1-bittinen (musta-valkoinen), pikselin muodon on oltava 1:1 ja lisäksi laitteessa tulee olla yhden/kahden käden näppäimistö, tai kosketusnäyttö. Laitteissa tulee olla 128 kilotavua pysyvää muistia MIDP-komponenteille, 8 kilotavua pysyvää muistia ohjelmien

16 16 tallentamaa tietoa varten ja 32 kilotavua muistia Javan ajonaikaiseen käyttöön. Lisäksi laitteissa tulee olla langaton kaksisuuntainen verkkoyhteys ja rajoitettu kaistanleveys. (Fox & Verhovsek 2002: ) MIDP sisältää kaikki CLDC:n käyttämät luokat ja lisäksi MIDP-profiilia varten määriteltyjä kirjastoja. Yksi tärkeimmistä kirjastoista on javax.microedition.midlet. Se sisältää MIDlet luokan, joka on kaikkien MIDlettien perusta. Muita tärkeitä kirjastoja ovat: javax.microedition.lcdui, jossa ovat käyttöliittymäluokat, javax.microedition.rms, joka sisältää tietueille perustuvan tallennusjärjestelmän (RMS eli Record Management System) ja javax.microedition.io, jota tarvitaan verkkoliikennettä varten (Kontio 2002: 55). MIDP ei määrittele sovelluksen liitäntää laitteeseen, päästä päähän tietosuojamallia, systeemitason tai laitteen alkuperäisen valmistajan (OEM, Original Equipment Manufacturer) määrittelemiä tarpeita sovellukselle, eikä mitään tiettyä toteutusta Record Management System ( RMS ) MIDP-profiilissa on huomioitu sovellukset, jotka tarvitsevat tiedoille katoamatonta muistia. MIDP määrittelee yksinkertaisen tietueille perustuvan RMS (Record Management System) -tallennusjärjestelmän. Sen luokat ja rajapinnat sijaitsevat javax.microedition.rms-paketissa. Käytännössä RMS-tietokanta on tiedosto, joka koostuu tietueista. Pääsy tietokantaan on vain samaan JAR-pakkaukseen kuuluvilla MIDleteillä. (Kontio 2002: 137.) RMS:n tieto on tavutaulukko, jonka koko voi vaihdella tietueittain. RMS ei rajoita sitä, millaista tietoa tietueisiin tallennetaan. Jokaiselle tietueelle määritellään yksilöllinen tunniste (recordid), joka on voimassa koko tietovaraston elinajan. Tietueita lisättäessä samaa tunnistetta ei käytetä uudelleen, joten yksittäisiä tietueita on helppo jäljittää. Tunnisteen avulla tietueita voidaan muuttaa ja poistaa. Tunnisteiden tietotyyppi on Integer ja ensimmäisen luotavan tietueen arvo on yksi. Tietueita lisättäessä, tunnisteen arvoa kasvatetaan ykkösellä (Mahmoud 2000). Tietovarasto luodaan, suljetaan ja poistetaan RecordStore-luokan metodeilla. Uuden tietovaraston luonti ja jo olemassa olevan tietovaraston avaus tehdään kuvan (Kuvio 7) mukaisesti openrecorstore()-metodilla, jolle välitetään kaksi parametria (String, boolean) (Kontio 2002:138). Ensimmäinen parametri kertoo luotavan, tai avattavan tietovaraston nimen. Nimi saa sisältää enintään 32 merkkiä. Toisen parametrin true-arvolla pyydetään metodia luomaan uusi tietovarasto, jos sitä ei ensimmäisen parametrin nimellä ole olemassa.

17 17 Avattaessa jo olemassa olevaa tietovarastoa, parametrin arvoksi asetetaan false. Tällöin on käytettävissä myös poikkeusten käsittely -luokka RecordStoreNotFoundExeption (Kontio 2002: 143). Tietovarasto suljetaan metodilla closerecordstore(). Tätä metodia käytettäessä on huomattava, että sitä on kutsuttava yhtä monta kertaa kuin metodia jolla tietovarasto avattiin. Muutoin tietovarasto jää avoimeksi (Mahmoud 2000). RecordStore rs = RecordStore.openRecordStore("nimi", false); byte[] tietue; //tallennettava tieto tavukoodeina int recordid; try { //tallennetaan tietue tietovarastoon recordid = rs.addrecord(tietue, 0, tietue.length); //haetaan tietue esille tietovarastosta tietue = rs.getrecord(recordid); //muutetaan tietuetta //kirjoitetaan tietue takaisin tietovarastoon rs.setrecord(recordid, tietue, 0, tietue.length), } catch (Exception e) { //käsitellään mahdolliset poikkeukset } Kuvio 7 Tietueiden käsittely RMS-tietovarastossa Tietuejoukon käsittelyä varten määritellään RecordStore-luokassa neljä perusmetodia: addrecord(), getrecord(), setrecord() ja deleterecord(). Tallentaminen suoritetaan koko tietue kerrallaan tavukoodina addrecord()-metodilla. Metodi palauttaa luodun tietueen tunnisteen. Tieto haetaan esille tallennusjärjestelmästä getrecord()-metodilla, jolle välitetään parametrina halutun tietueen tunniste. Metodilla setrecord() voidaan korvata jo olemassa oleva tietue uudella. (Kontio 2002: 137.) RMS-tallennusjärjestelmässä ei ole mahdollista muuttaa vain tietueen tiettyä osaa (Mahmoud 2000). Tietuetta muutetaan lukemalla ensin koko tietue tietovarastosta, jonka jälkeen tehdään muutokset ja lopuksi tietue kirjoitetaan tallennusjärjestelmään vanhan tietueen päälle setrecord()-

18 18 metodilla kuvan (Kuvio 7) mukaisesti MIDP -käyttöliittymäluokat MIDP-sovellusten käyttöliittymävaatimukset poikkeavat pöytätietokoneista, koska matkapuhelimilla ei ole vastaavia syöttölaitteita ja niiden näyttöjen koko on pienempi. MIDP ei käytä AWT:tä (Abstract Windowing Toolkit) graafisten käyttöliittymien luonnissa, koska se on liian raskas. Lisäksi AWT on suunniteltu käytettäväksi osoitinlaitteen kanssa ja sellainen on vain harvoilla MIDP-päätelaitteilla (Kontio 2002: 47). MIDP:n mukana tulee oma grafiikkarajapinta, joka on jaettu korkean tason (high-level) ja matalan tason (low-level) rajapintoihin. Korkean tason rajapinta on suunniteltu liike-elämän sovelluksia varten, joiden asiakasohjelmia ajetaan MID (Mobile Information Device) -laitteissa. Sovelluksen logiikka, tietokannat ja palvelut sijaitsevat palvelimilla ja MIDP-laitteella on vain kevyt asiakas-sovellus (Kontio 2002: 47). Näissä sovelluksissa tärkeintä on siirrettävyys. Korkean tason komponenttien ulkonäkö on kiinteä, eikä ohjelmoija voi siihen vaikuttaa. Ohjelmalla ei myöskään ole tarkkaa tietämystä laitteen hallinta- tai syöttölaitteista. Korkean tason käyttöliittymä-komponentteja toteuttavat luokat periytyvät luokasta javax.microedition.lcdui.screen. Matalan tason (low-level) grafiikkarajapinta on tarkoitettu sovelluksille, joissa tarvitaan graafisten elementtien tarkkaa sijoittelua ja ohjausta näytöllä. Pelit ovat tyypillisiä sovelluksia, jotka käyttävät matalan tason käyttöliittymäkomponentteja (Riggs, Taivalsaari ja VandenBrink 2001). Pienen näytön koon vuoksi puhelinlaitteilta puuttuvat myös pöytäkoneille ominaiset ikkunointijärjestelmät. MIDP-profiilin käyttöliittymärajapinnan keskeisin luokka on Screen, joka kapseloi 1 ja järjestää graafiset komponentit, sekä kohdistaa käyttäjän syötteet laitteiston avulla. Screen-luokan ilmentymästä käytetään nimitystä näkymä. MIDP-sovellus voi koostua useista näkymistä, mutta vain yksi näkymä voi olla kerrallaan aktiivisena päätelaitteen näytöllä. Näkymät tulisi toteuttaa siten, että näkymä on mahdollisimman yksinkertainen ja sisältää graafisia komponentteja vain sen verran kuin tehtävän suorittaminen vaatii (Mahmoud 2001). MIDP-käyttöliittymä API määrittelee neljä erilaista näkymätyyppiä: tekstiruutu-, lista, -viesti- ja valikkonäkymät. Nämä luokat totutetaan kuvan (Kuvio 8) mukaisesti Screen-luokasta perityistä luokissa: TextBox, List, Alert ja Form. 1 Oliotekniikan tukema tietojen määrittelytapa, jossa osaa tiedoista pääsee käyttämään vain olioiden avulla.

19 19 Kuvio 8 MIDP käyttöliittymäluokat (Kontio 2002: 58) 3 MIDlet 3.1 MIDletin elinkaari ja metodit MIDlet on Java-kielellä tehty MIDP-sovellus. MIDlet suoritetaan Javavirtuaalikoneen alaisuudessa päätelaitteella. Kannettavilla päätelaitteilla ei ole komentokuorta, jolla käyttäjä voi ohjata ohjelman suoritusta kuten pöytätietokoneissa. MIDlet-sovellusten ohjaus tapahtuu päätelaitteelle sijoitetun AMS (Application Management Software) -ohjelmiston avulla. Se ohjaa koko MIDletin elinkaaren toiminnot. AMS toimii samalla tasolla kuin laitteen muutkin varusohjelmistot ja se tekee yhteistyötä Java-virtuaalikoneen kanssa. (Kontio 2002: 157.) Kaikki MIDletit periytyvät kantaluokasta MIDlet, joka sijaitsee javax.microedition.midlet-paketissa. MIDlettien kantaluokka määrittelee kolme metodia, joiden avulla toteutetaan MIDletin elinkaaren aikaiset tilasiirtymiset. Nämä metodit ovat: startapp(), pauseapp() ja destroyapp(boolean), jotka täytyy ylikirjoittaa jokaisessa MIDletissä (Kontio 2002: 48). MIDlet voi itse pyytää tilasiirtymistä seuraavien metodien avulla: resumerequest(), notifypaused() tai notifydestroyed(). Kuvassa (Kuvio 9) näkyvät MIDletin mahdolliset tilat ja tilasiirtymiset.

20 20 Constructor Paused ResumeRequest() startapp() pauseapp() notifypaused() Active DestroyApp() notifydestroyed() DestroyApp() Destroyed Kuvio 9 MIDletin tilat ja sallitut tilasiirtymiset (Kontio 2002: 48) 3.2 MIDletin luominen MIDletin luominen sisältää viisi vaihetta (Kontio 2002: 51): MIDletin ohjelmakoodin kirjoitus, kääntäminen, esitarkistus, pakkaus JAR- ja JAD-tiedostoiksi. Tutkintotyössä käytetty Nokian Developers Suite antaa ohjelmointia varten kuvan (Kuvio10) mukaisen MIDlet rungon. Jokaisen MIDletin täytyy periytyä MIDlet luokasta. Valmiiseen runkoon on lisätty myös javax.microedition.lcdui-paketti, joka sisältää MIDP:n käyttämät käyttöliittymäluokat (Kontio 2002: 50). Kuvan (Kuvio 10) esimerkin SpaceBall-luokka toteuttaa CommandListener-rajapinnan, joka seuraa korkean tason käyttöliittymäluokkien tapahtumia. CommandListener rajapinta määrittää vain commandaction(command, Displayable) metodin (Kontio 2002: 50).

Java-API, rajapinnat, poikkeukset, UML,...

Java-API, rajapinnat, poikkeukset, UML,... Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)

Lisätiedot

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002 JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä

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

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

Mainosankkuri.fi-palvelun käyttöohjeita

Mainosankkuri.fi-palvelun käyttöohjeita Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...

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

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

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0 CODEONLINE Monni Oo- ja Java-harjoituksia Version 1.0 Revision History Date Version Description Author 25.10.2000 1.0 Initial version Juha Johansson Inspection History Date Version Inspectors Approved

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

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten

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

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

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

Ulkoiset mediakortit Käyttöopas

Ulkoiset mediakortit Käyttöopas Ulkoiset mediakortit Käyttöopas Copyright 2010 Hewlett-Packard Development Company, L.P. Java on Sun Microsystems, Inc:n tavaramerkki Yhdysvalloissa. SD-logo on omistajansa tavaramerkki. Tuotetta koskeva

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

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

Lisätiedot

Pieniä sovelluksia pienissä laitteissa. J2ME-SOVELLUKSET Motorola V66i Motorola T720 Nokia 3410 Nokia 6310i Nokia 7650 Siemens M50

Pieniä sovelluksia pienissä laitteissa. J2ME-SOVELLUKSET Motorola V66i Motorola T720 Nokia 3410 Nokia 6310i Nokia 7650 Siemens M50 MPC-TESTI MOBIILILAITTEET TEKSTI JA TESTIT: JULIAN IIZUKA VALOKUVAT JA KUVANKÄSITTELY: MATTI SULANTO J2ME-SOVELLUKSET Motorola V66i Motorola T720 Nokia 3410 Nokia 6310i Nokia 7650 Siemens M50 Pieniä sovelluksia

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

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

Käyttöohjeet. Sovellussivusto

Käyttöohjeet. Sovellussivusto Käyttöohjeet Sovellussivusto SISÄLLYSLUETTELO Tietoja oppaasta...2 Oppaassa käytetyt symbolit...2 Vastuuvapauslauseke...3 Huomautuksia...3 Mitä sovellussivustolla voi tehdä... 4 Ennen sovellussivuston

Lisätiedot

PIKAOPAS NOKIA PC SUITE 4.88. Copyright Nokia Oyj 2003. Kaikki oikeudet pidätetään

PIKAOPAS NOKIA PC SUITE 4.88. Copyright Nokia Oyj 2003. Kaikki oikeudet pidätetään PIKAOPAS NOKIA PC SUITE 4.88 Copyright Nokia Oyj 2003. Kaikki oikeudet pidätetään Sisällysluettelo 1. JOHDANTO...1 2. JÄRJESTELMÄVAATIMUKSET...1 3. PC SUITE -OHJELMISTON ASENTAMINEN...2 4. KÄYTÖN ALOITTAMINEN...3

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

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

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

lizengo Asennusopas Windows: in kopioiminen

lizengo Asennusopas Windows: in kopioiminen lizengo Asennusopas Windows: in kopioiminen Windows: in kopioiminen lizengo Asennusopas Klikkaa sitä Windows-versiota, jonka haluat kopioida USB-tikulle, niin pääset suoraan oikeaan oppaaseen. Windows

Lisätiedot

13/20: Kierrätys kannattaa koodaamisessakin

13/20: Kierrätys kannattaa koodaamisessakin Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy

Lisätiedot

1. Taustatietoa näppäimistönkuuntelusta

1. Taustatietoa näppäimistönkuuntelusta Muilla kielillä: English Suomi Pong-peli, vaihe 5 Tämä on Pong-pelin tutoriaalin osa 5/7. Tämän vaiheen aikana Lisäämme peliin näppäimet Laitetaan mailat liikkumaan pelaajien ohjaamina Näin ohjelmaamme

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

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

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

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

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

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta TAMK Ohjelmistotekniikka G-04237 Graafisten käyttöliittymien ohjelmointi Harjoitustehtävä 2: Karttasovellus Kartta TAMK Karttasovellus Kartta Sivu 2/8 Sisällysluettelo 1. JOHDANTO...3 2. VAATIMUSMÄÄRITTELY...

Lisätiedot

Olio-ohjelmointi Virhetilanteiden käsittely

Olio-ohjelmointi Virhetilanteiden käsittely Olio-ohjelmointi 2016 Virhetilanteiden käsittely Poikkeustilanteet n Java-järjestelmässä voidaan ottaa kiinni ohjelman suoritusaikana tapahtuvia virhetilanteita, joita ei saada kiinni tavanomaisilla ohjausrakenteilla

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

.NET ajoympäristö. Juha Järvensivu 2007

.NET ajoympäristö. Juha Järvensivu 2007 .NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET

Lisätiedot

Ohjeita kirjan tekemiseen

Ohjeita kirjan tekemiseen Suomen Sukututkimustoimisto on yhdessä Omakirjan kanssa tehnyt internetiin uuden Perhekirja-sivuston. Se löytyy osoitteesta: www.omakirja.fi -> Kirjat -> Perhekirja tai http://www.omakirja.fi/perhekirja?product=6

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

Setup Utility (Tietokoneen asetukset) -apuohjelma. Oppaan osanumero:

Setup Utility (Tietokoneen asetukset) -apuohjelma. Oppaan osanumero: Setup Utility (Tietokoneen asetukset) -apuohjelma Oppaan osanumero: 389194-352 Joulukuu 2005 Sisällysluettelo 1 Setup Utility (Tietokoneen asetukset) -apuohjelman käyttö 2 Setup Utility (Tietokoneen asetukset)

Lisätiedot

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest). 1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.

Lisätiedot

Java ja grafiikka. Ville Sundberg 12.12.2007

Java ja grafiikka. Ville Sundberg 12.12.2007 Java ja grafiikka Ville Sundberg 12.12.2007 What happen Viritetty JPanel Graphics ja Graphics2D ImageIO ja BufferedImage Animaatio ja ajastus Optimoinnista Kehykset import javax.swing.jframe; public class

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

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3 Uutisjärjestelmä Vaatimusmäärittely Versio 1.3 Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2

Lisätiedot

SIMO MOBILOG ONGELMIEN RATKAISU

SIMO MOBILOG ONGELMIEN RATKAISU SIMO MOBILOG ONGELMIEN RATKAISU Yleisimmät ongelmat CGI (Mukana) sovellus Sovelluksen päivittäminen Lataaminen ja asennus Kielen vaihtaminen Ympäristön vaihtaminen (tuotanto-testi) Uudelleenasennus Pakotettu

Lisätiedot

Nokia E5 ja Mail for Exchange

Nokia E5 ja Mail for Exchange Nokia E5 ja Mail for Exchange Uuden esiasennetun puhelinlaitteen käyttöönotto tapahtuu DataInfon käyttäjälle lähettämien ohjeiden mukaan. Ohjeistetussa käyttöönotossa puhelimeen asentuu langattoman verkon

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

Kuvan pienentäminen Paint.NET-kuvankäsittelyohjelmalla

Kuvan pienentäminen Paint.NET-kuvankäsittelyohjelmalla Kuvan pienentäminen Paint.NET-kuvankäsittelyohjelmalla Avaa Paint.NET tuplaklikkaamalla sen pikakuvaketta. Paint.NET avautuu tämän näköisenä. Edessä on tyhjä paperi. Saadaksesi auki kuvan, jota aiot pienentää

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

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

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

Motorola Phone Tools. Pikaopas

Motorola Phone Tools. Pikaopas Motorola Phone Tools Pikaopas Sisältö Vähimmäisvaatimukset... 2 Ennen asennusta Motorola Phone Tools... 3 Asentaminen Motorola Phone Tools... 4 Matkapuhelimen asennus ja määritys... 5 Online-rekisteröinti...

Lisätiedot

Datatähti 2009 -alkukilpailu

Datatähti 2009 -alkukilpailu Datatähti 2009 -alkukilpailu Ohjelmointitehtävä 1/3: Hissimatka HUOM: Tutustuthan huolellisesti tehtävien sääntöihin ja palautusohjeisiin (sivu 7) Joukko ohjelmoijia on talon pohjakerroksessa, ja he haluavat

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

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen Näissä ohjeissa käydään läpi Microsoftin MS-DOS 6.22 -käyttöjärjestelmän asennus Microsoftin Virtual PC 2007 -virtuaalikoneeseen. Asennusta varten sinulla on oltava Virtual PC 2007 asennettuna tietokoneellasi

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole

Lisätiedot

Gree Smart -sovelluksen (WiFi) asennus- ja käyttöohje: Hansol-sarjan ilmalämpöpumput WiFi-ominaisuuksilla

Gree Smart -sovelluksen (WiFi) asennus- ja käyttöohje: Hansol-sarjan ilmalämpöpumput WiFi-ominaisuuksilla 02/2016, ed. 5 KÄYTTÖOHJE Gree Smart -sovelluksen (WiFi) asennus- ja käyttöohje: Hansol-sarjan ilmalämpöpumput WiFi-ominaisuuksilla Maahantuoja: Tiilenlyöjänkuja 9 A 01720 Vantaa www.scanvarm.fi Kiitos

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

PIKAOPAS NOKIA PC SUITE 4.51a NOKIA 6510 -PUHELIMELLE

PIKAOPAS NOKIA PC SUITE 4.51a NOKIA 6510 -PUHELIMELLE PIKAOPAS NOKIA PC SUITE 4.51a NOKIA 6510 -PUHELIMELLE Copyright Nokia Oyj 2002. Kaikki oikeudet pidätetään. Sisällysluettelo 1. JOHDANTO...1 2. JÄRJESTELMÄVAATIMUKSET...1 3. PC SUITE -OHJELMISTON ASENTAMINEN...2

Lisätiedot

Hälyri-tietojärjestelmän järjestelmätestaussuunnitelma ja -raporttimalli

Hälyri-tietojärjestelmän järjestelmätestaussuunnitelma ja -raporttimalli Hälyri-tietojärjestelmän järjestelmätestaussuunnitelma ja -raporttimalli Laatijat: Veli Mikko Puupponen ja Ilkka Rautiainen Päivämäärä: 26.5.2014 Versio: 1.0.0 1. Testausympäristö ja yhteenveto Testatun

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

Harjoitustyö (TKO_2023)

Harjoitustyö (TKO_2023) Harjoitustyö (TKO_2023) Jyri Lehtonen (72039) (alkuperäinen 29.1.2008) päivitetty: 8.2.2008 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee Java-appletti, joka kysyy käyttäjältä asioita Java-kielestä.

Lisätiedot

Vesisika. metsiemme työmyyrä. http://www.billybear4kids.com/animal/whose-toes/capybara.jpg

Vesisika. metsiemme työmyyrä. http://www.billybear4kids.com/animal/whose-toes/capybara.jpg Vesisika metsiemme työmyyrä http://www.billybear4kids.com/animal/whose-toes/capybara.jpg Faktat Vesisika tykkää vedestä ja näyttää (ja kuulemma maistuu) hieman sialta. Käyttää myös nickiä kapybara. kapiÿva

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

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus: Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus

Lisätiedot

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri Ohjelmistoarkkitehtuuri Verkotettu multimedia Käyttöliittymä Middleware Tietoliikenne 1 2 Multimedian vaikutukset Mediavirtojen puskurointi 3 4 Ohjelmointi Selain-ohjelmistoarkkitehtuuri 5 6 WWW-arkkitehtuuri

Lisätiedot

Ohjeita informaation saavutettavuuteen

Ohjeita informaation saavutettavuuteen Ohjeita informaation saavutettavuuteen Tarkoitus Kasvattaa tietoisuutta ja lisätä esteettömän informaation aiheen näkyvyyttä ja sen merkitystä elinikäisen tasapuolisen oppimisen mahdollisuuksista Tukea

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

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann

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

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä Linux 00 Keskeiset piirteet Tux-pingviinin kuva: Larry Ewing, Simon Budig ja Anja Gerwinski Kysymyksiä 1. Mikä Linux on? 2. Kuinka Linux syntyi ja kehittyy? 3. Mitkä ovat Linuxin vahvuudet? 2 1 Linux on

Lisätiedot

Pakkauksen kokoaminen

Pakkauksen kokoaminen 13. Pakkaukset 13.1 Sisällys Pakkauksen kokoaminen (package). Pakkaukset ja hakemistorakenne. Pakkauksen luokkien käyttö muissa pakkauksissa (import). Pakkaukset ja näkyvyys. 13.2 Pakkauksen kokoaminen

Lisätiedot

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

L models. Käyttöohje. Ryhmä Rajoitteiset

L models. Käyttöohje. Ryhmä Rajoitteiset Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Käyttöohje Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset 0.1

Lisätiedot

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia

Lisätiedot

815338A Ohjelmointikielten periaatteet

815338A Ohjelmointikielten periaatteet 815338A Ohjelmointikielten periaatteet 2015-2016 VIII Poikkeusten ja tapahtumien käsittely Sisältö 1. Poikkeusten käsittelyn käsitteitä ja suunnittelukriteerejä 2. Poikkeusten käsittely C++:ssa 3. Poikkeusten

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

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä 2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa

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

oppimispeli esi- ja alkuopetusikäisten lasten matemaattisten taitojen tukemiseen

oppimispeli esi- ja alkuopetusikäisten lasten matemaattisten taitojen tukemiseen oppimispeli esi- ja alkuopetusikäisten lasten matemaattisten taitojen tukemiseen ILMAINEN Lukimat-verkkopalvelun (www.lukimat.fi) kautta saatava tietokonepeli EKAPELI-MATIKKA Ekapeli-Matikka on tarkoitettu

Lisätiedot

DNA Netti. Sisältö. DNA Netti - Käyttöohje v.0.1

DNA Netti. Sisältö. DNA Netti - Käyttöohje v.0.1 DNA Netti DNA Netti on Mokkuloiden yhteysohjelma. Ohjelman avulla voit hallita Mokkulan asetuksia sekä luoda yhteyden internetiin Mokkulan, WLANin tai Ethernet -yhteyden avulla. Sisältö DNA Netti - Testaa

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

Tietokoneen asetukset -apuohjelma Käyttöopas

Tietokoneen asetukset -apuohjelma Käyttöopas Tietokoneen asetukset -apuohjelma Käyttöopas Copyright 2007 Hewlett-Packard Development Company, L.P. Windows on Microsoft Corporationin Yhdysvalloissa rekisteröity tavaramerkki. Tässä olevat tiedot voivat

Lisätiedot

Welcome to the World of PlayStation Pika-aloitusopas

Welcome to the World of PlayStation Pika-aloitusopas Welcome to the World of PlayStation Pika-aloitusopas Suomi PCH-2016 7025574 PlayStation Vita-järjestelmän käyttäminen ensimmäistä kertaa Paina viisi sekuntia Kytke virta PS Vita -järjestelmään. Kun kytket

Lisätiedot

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys ClassPad fx-cp400 päivitys + Manager for ClassPad II Subscription päivitys Käyttöjärjestelmän ja Add-in sovellusten päivityksestä Casio suosittelee aina viimeisimmän käyttöjärjestelmän asentamista. Tällöin

Lisätiedot

Nokia Lifeblog 2.5 Nokia N76-1

Nokia Lifeblog 2.5 Nokia N76-1 Nokia Lifeblog 2.5 Nokia N76-1 2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N76 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä tavaramerkkejä. Muut tässä asiakirjassa

Lisätiedot

Tietokoneen asetukset -ohjelma. Oppaan osanumero: 383705-351

Tietokoneen asetukset -ohjelma. Oppaan osanumero: 383705-351 Tietokoneen asetukset -ohjelma Oppaan osanumero: 383705-351 Toukokuu 2005 Sisällysluettelo Tietokoneen asetukset -ohjelma Hakemisto Tietokoneen asetukset -ohjelman käynnistäminen.... 2 Tietokoneen asetukset

Lisätiedot

A. Peruskäyttöohje Digilehtiö

A. Peruskäyttöohje Digilehtiö A. Peruskäyttöohje Digilehtiö 1 1. Aseta haluamasi paperi tai lehtiö alustan päälle. Kirjoita ja piirrä muistiinpanot digilehtiön kynällä, kun kirjoitat uudelle sivulle, käännä lehti syrjään, ja paina

Lisätiedot

1 PÖYDÄT JA PALLOT 1. Kilpailuissa tulee käyttää Suomen Biljardiliiton hyväksymiä pöytiä ja palloja.

1 PÖYDÄT JA PALLOT 1. Kilpailuissa tulee käyttää Suomen Biljardiliiton hyväksymiä pöytiä ja palloja. KARAMBOLEN SÄÄNNÖT Kolmen vallin kara Yhden vallin kara Suora kara - Cadre YHTEISET SÄÄNNÖT KAIKILLE PELIMUODOILLE 1 PÖYDÄT JA PALLOT 1. Kilpailuissa tulee käyttää Suomen Biljardiliiton hyväksymiä pöytiä

Lisätiedot

Sanomapavelinohjelmiston käyttöohje (Vanha versio RO)

Sanomapavelinohjelmiston käyttöohje (Vanha versio RO) Sanomapavelinohjelmiston käyttöohje (Vanha versio 22.5.2015 RO) Asio Sanomapalvelinohjelmiston ja viestintäpalvelun käyttö nettiselaimella Kirjautuminen palveluun, Viestin lähetys, Sanomaryhmän luominen

Lisätiedot

KÄYTTÖVALTUUSHALLINTA (KVH) 1 (14) Käyttöohje rekisterinpidon yhteyshenkilölle 3.5.2016

KÄYTTÖVALTUUSHALLINTA (KVH) 1 (14) Käyttöohje rekisterinpidon yhteyshenkilölle 3.5.2016 KÄYTTÖVALTUUSHALLINTA (KVH) 1 (14) MML Käyttövaltuushallintaan mennään osoitteen https://vatu.idmservice.nls.fi kautta. Valitse tunnistautumismenetelmä, joka sinulla on käytössäsi. KÄYTTÖVALTUUSHALLINTA

Lisätiedot

Sonera Viestintäpalvelu VIP

Sonera Viestintäpalvelu VIP Sonera Viestintäpalvelu VIP Loma- ja Poissaoloviestitoiminnallisuuden käyttöopas v 1.2 Toiminnallisuuden kuvaus Poissaoloviestin aktivoit päälle suorittamalla seuraavat toimenpiteet: Valitse aktiviteetiksesi

Lisätiedot

StatCrunch -laskentasovellus

StatCrunch -laskentasovellus StatCrunch -laskentasovellus Yleistä sovelluksesta StatCrunch on Integrated Analytics LLC:n valmistama sovellus tilastotieteellisten analyysien tuottamista varten. Se on verkon yli käytettävä analyysisovellus,

Lisätiedot

Skype for Business pikaohje

Skype for Business pikaohje Skype for Business pikaohje Sisällys KOKOUSKUTSU... 2 ENNEN ENSIMMÄISEN KOKOUKSEN ALKUA... 4 LIITTYMINEN KOKOUKSEEN SKYPE FOR BUSINEKSELLA... 5 LIITTYMINEN KOKOUKSEEN SELAIMEN KAUTTA... 6 LIITTYMINEN KOKOUKSEEN

Lisätiedot

Visual Basic -sovelluskehitin Juha Vitikka

Visual Basic -sovelluskehitin Juha Vitikka Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen

Lisätiedot

KAUKOVALVONTAOHJELMA CARELAY CONTROL WPREMOTE

KAUKOVALVONTAOHJELMA CARELAY CONTROL WPREMOTE KAUKOVALVONTAOHJELMA CARELAY CONTROL WPREMOTE Tämä kuvaus on tarkoitettu Carelay - tuotteen Waterpumps WP:n ja Power Factor::n sovelluskohteisiin. Yleistä Carelay Control Wpremote on kaukovalvontaohjelma,

Lisätiedot

2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä

2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä Nokia Lifeblog 2.5 2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä tavaramerkkejä. Muut tässä asiakirjassa mainitut

Lisätiedot

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta. Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta. Vastauksia kysymyksiin Miten hahmon saa hyppäämään? Yksinkertaisen hypyn

Lisätiedot