|
|
1. Johdanto Tämä opas on tarkoitettu ohjelmoinnin oppaaksi vasta-alkajalle Java-kielen perusteisiin. Oppaan lukemiseen ei siis vaadita aikaisempaa ohjelmointitaustaa, mutta siitä ei toki ole haittaakaan. Tämä opas käsittelee ohjelmoinnin perusrakenteen sekä tärkeimmät seikat olioperustaisen ohjelmoinnin ymmärtämiseen. Oppaan liitteissä on kerrottu mitä ohjelmia Java-koodin kääntämiseksi suoritettavaksi ohjelmiksi vaaditaan sekä muutamia laajempia esimerkkejä. Oppaassa on jätetty käsittelemättä monet kehittyneemmät Javan ominaisuudet ja keskitytty perusasioihin. Lisää tietoa löydät Javasta muun muassa Sun Microsystemsin sivulta: http://www.sun.com/java/ 1.1 Yleiskuvaus Javasta HTML-kielen ja WWW:n julkistuksen myötä Sun Microsystems alkoi kehittää Oak-kielen pohjalta Javaa. Java on ohjelmointikieli, joka on pyritty tekemään laitteistoriippumattomaksi graafisten ohjelmien tekovälineeksi. Java onkin nykypäivänä tullut niin suosituksi kieleksi, että lähes jokaisessa uudessa selaimessa on Java-tulkki ja yhä useammilla www-sivuilla on käytetty jotakin Javalla tehtyä sovellusta. Monesti voi saada sellaisen käsityksen, että Javalla ei pysty paljon muuta tekemään kuin web-sovelluksia, mutta totuus on kuitenkin toinen. Javalla pystytään rakentamaan lähes mitä tahansa sovelluksia useille eri alustoille ja ympäristölle. Alunperin Java oli sulautettujen järjestelmien kieli, eli sitä oli tarkoitus käyttää älykkäisiin kulutuselektroniikkalaiteisiin, esimerkiksi kahvinkeittimeen tai mikroaaltouuniin. WWW:n läpimurron myötä kieli sai kuitenkin uusia piirteitä. Nykyisin käytössä olevat Java-versiot ovat laitteistosta ja käyttöjärjestelmästä riippumatomia olio-ohjelmointikieliä. Tässä tapauksessa alustariippumattomuudella tarkoitetaan, että kirjoitettu ohjelmakoodi käännetään ns. tavukoodiksi (bytecode), joka on tietynlainen väliversio ohjelmasta. Tätä tavukoodista versiota voidaan ajaa järjestelmälle ja laitealustalle sopivalla Java-virtuaalikoneella eli tulkilla, joka tulkkaa käännöksen koneen ymmärtämään muotoon. Itse kääntäminen tavukoodiksi tapahtuu siis vain kerran, mutta tulkkaus tapahtuu joka kerta, kun ohjelma ajetaan. Jokainen Java-lähdekoodi voidaan kääntää millä tahansa koneella, johon on asennettu Java-kääntäjä. Käännetyt tavukoodit voidaan suorittaa jokaisessa koneessa, jossa on Java-tulkki asennettuna. Java-kielen yleisyyden lisäksi on syitä, joiden takia Java sopii hyvin aloittelijalle. Näitä syitä on muun muassa seuraavat seikat: Java-ohjelman voi kirjoittaa jollakin tekstieditorilla esimerkiksi Windowsin Notepadilla tai Unixin Picolla. On myös kehitetty kehittyneempiä editoreita ohjelmointikäyttöön, jotka esimerkiksi käyttävät koodin tiettyjen rakenneosien väritystä ja avustavat sisennyksien teossa. Näistä esimerkkeinä voidaan mainita Windowsille Notepad++ ja Unixille Emacs. Näiden kehittyneempien editorien käyttäminen ei ole kuitenkaan välttämätöntä, vaan koodin voi kirjoittaa peruseditorilla. Voit luoda ensimmäisen lähdekoodin kirjoittamalla alla olevan esimerkin koodin jollain tekstieditorilla ja tallentamalla sen esimerkiksi tiedostonimellä eka.java.
class Eka {
public static void main(String[] args) {
System.out.println("Hei Maailma");
}
}
Kun olet saanut koodin kirjoitettua ja tallennettua voit kääntää ohjelman komentoriviltä komennolla javac Eka.java. Mikäli lähdekoodin käännös onnistuu, kääntäjä luo Eka.class-nimisen tiedoston samaan hakemistoon lähdekoodin kanssa. Tämän ohjelman voit suorittaa komennolla java eka. Ajettaessa ohjelmaa ei siis pidä laittaa käännetyn ohjelman tiedostopäätettä. Jotta ohjelman kääntäminen onnistuisi, on luonnollisesti käytettyyn järjestelmään pitänyt asentaa Java-kääntäjä ja tulkki. Lisää Java-kääntäjän hankkimisesta ja asennuksesta kerrotaan liitteissä. Kääntäessä ja tulkatessa ohjelmia on oltava tarkkana tiedostojen nimien oikeinkirjoituksen kanssa. Javassa eri kirjainkoolla on merkitystä. Sama pätee myös varsinaisen koodin kirjoittamiseen. Yllä oleva yksinkertainen ohjelma tulostaa näytölle "Hei Maailma" -teksin. Ensimmäisellä rivillä oleva class aloittaa luokan määrityksen, jonka jälkeen seuraa luokan nimi "Eka". Merkillä "{" kuvataan luokan tai yleensä minkä tahansa lohkon aloitusta ja "}" merkillä lopetusta. Näiden kaarisulkeiden väliin sijoitetaan luokan varsinainen koodi. Rivillä 2 on main-metodi. Jokaisella Java-sovelluksella pitää olla main-metodi. Metodilla tarkoitetaan luokan osaa, joka suorittaa sille annettujen lähtötietojen eli argumenttien tai parametrien perusteella jonkin toiminnon. Metodit määrittävät mitä luokka osaa tehdä. Main-metodin etumääre public kuvaa, että metodi on julkinen, eli luokan ulkopuolelle näkyvä ja metodia voi kutsua mikä muu tahansa luokka. Etumääre static kuvaa, että main metodi kuuluu luokalle ja void kuvaa, että kuvaa ettei metodi palauta mitään arvoa. Metodille voidaan antaa erilaisia parametreja, jotka on lueteltu suluissa esittelyrivin lopussa. Parametrit tallennetaan taulukkoon joka on kuvattu String[] args:llä. Parametreilla tarkoitetaan metodin tarvitsemia ulkoapäin saatavia tietoja. Ensimmäinen ohjelmamme ei kuitenkaan huomio parametreja millään tapaa. Olion määreisiin palataan tarkemmin luvussa 6. Rivillä 3 on itse tulostuksen tuottava rivi. Tulostuksessa käytetään apuna valmista System-luokkaa, jonka out-muuttujan println-metodi tuottaa näytölle tulosteen annetusta parametrista "Hei Maailma". Huomaa rivin lopussa oleva puolipiste, jolla lauseet erotetaan toisistaan. Luokkien ja metodien esittelyriveille ei tarvita lopetusmerkkiä. Olio-ohjelmoinnin perusideana on kuvata ohjelman toimintaa olioina, niiden ominaisuuksina ja toimintoina, sekä olioiden välisinä suhteina. Olio-ohjelmointi voidaan nähdä myös siten, että ohjelmointiongelma jaetaan osaongelmiksi ja yksittäisen ongelman rakenne ja toiminnallisuus ohjelmoidaan erikseen riippumatta koko sovelluksen rakenteesta. Näin muodostuu hierarkkinen periytyvä suhdeverkko. Näistä seikoista johtuen oliokielellä ohjelmointi tarjoaa perinteisiin ohjelmointikieliin nähden muun muassa paremman uudelleenkäytettävyyden. Tästä juontaa Javan kapselointi, jossa ohjelman osan käyttöön luodaan liittymä, mutta varsinainen ohjelmakoodi piilotetaan käyttäjältä. Tämä on etu etenkin laajoja ohjelmia laadittaessa, jolloin kokonaisuuksien hallinta helpottuu. Olioista ja luokkahierarkioista kerrotaan enemmän luvussa 6. |