Javan standardiluokkia: Math

Javan Math-luokka kuuluu standardikirjastoihin ja siinä on toteutettu monia eri matemaattisia funktioita. Luokasta ei voi luoda oliota, koska se sisältää ainoastaan staattisia metodeja. Useimmat Math-luokan metodit huolivat ja palauttavat ainoastaan double-tyyppisiä arvoja. Math-luokan käyttö toimii kuten tavallisen luokan: Muutamia Math-luokan useimmiten käytettyjä metodeja ovat ainakin seuraavat: Math-luokan mukana tulee myös kaksi vakiota.

Java: määreitä – public, protected, private, static ja final

Periytymistä koskevassa artikkelissani jo sivusinkin suojausmääreitä (acces modifier), niistä on kuitenkin hyvä kirjoittaa oma tarkempi artikkelinsa. Aiheeseen kuuluu myös paketit, abstrakti luokka ja metodit sekä rajapinnat. public, protected ja private Suojausmääreiden avulla, metodeita ja niiden ominaisuuksia voidaan suojata ulkopuolisilta käsittelijöiltä. Määreiden avulla voidaan myös sallia tiettyjen ominaisuuksien tarkastelu ja muuntelu luokan ulkopuolelta. Suojausmääreet toimivat samoin... Continue Reading →

Java: sisäiset, paikalliset ja nimeämättömät luokat

Sisäinen luokka (inner class) on luokka jonkin toisen luokan sisällä. Sisäisen luokan metodit ja muuttujat ovat tällöin suojattu ulkopuoliselta käytöltä mutta ne ovat kuitenkin oman ulkoisen luokkansa käytössä. Ulkoisessa luokassa on luotava olio sisäisestä luokasta jotta sen metodeihin päästään kiinni. Paikallisen luokan voi tehdä vaikka tietyn metodin tai silmukan sisään ja anonyymiä luokkaa voi käyttää... Continue Reading →

Java: olion kopioiminen

Olion kopioiminen toiselle oliolle datasisältöineen onnistuu Javalla toteuttamalla kopioitavan olion luokassa Cloneable rajapinta sekä luomalla metodi clone() metodi. Metodi clone() voisi näyttää seuraavanlaiselta: Tämän jälkeen luokasta LuokkaA voidaan lähteä luomaan kopiota: Ylläolevan ohjelman tulostus näyttäisi seuraavalta ekaOlio ihan alussa: (1, 2) tokaOlio kopionnin jälkeen: (1, 2) tokaOlio vähän myöhemmin: (2, 1) Virhetilanteessa Java ilmoittaa CloneNotSupportedException... Continue Reading →

Java: luokan koostaminen olioista

Luokan alusta rakentamisen ja perinnän lisäksi, luokan koostaminen olioista on helppo ja usein myös järkevämpi tapa. Jos ajatellaan, että on luokka MinMaxInt, jolle annetaan argumentteina pienin ja suurin sallittu kokonaisluku. Tämän jälkeen luokan setteri ei aseta liian pieniä tai isoja parametreja. Luokka sopii jonkinlaisen hahmon liikuttamiseen ruudulla? Emme halua suunnittelemamme hienon merkkipelin sankarin pystyvän liikkumaan... Continue Reading →

Java: super-viittaus

super-viittauksella voimme viitata aliluokasta yliluokan ylikirjoittamaa metodia. Esimerkiksi Yliluokan metodi voidaan ylikirjoittaa, mutta Yliluokan alkuperäistä metodia voimme kutsua Aliluokasta super-viitteen avulla super.laula("Lauletaan Yliluokassa...");. Yliluokan metodia voi kutsua myös Aliluokan metodissa joka sen ylikirjoittaa. Yleisimpiä super-viiteen käyttötapauksia lienee yliluokan konstruktorin kutsuminen. Pieni esimerkkikoodi Eclipse projektina SuperEsimerkki.zip

Java: this-viittaus

Avainsanalla this viitataan luokan olioon kun ollaan luokan sisällä. Olion kaikkiin ominaisuuksiin ja metodeihin voi luokassa viitata this-viittauksen avulla. Tämä mahdollistaa sen, että muuttujiin ja parametreihin voidaan viitata samalla nimellä. Metodien suhteen this-viittaus toimii vastaavalla tavalla.

Ohjelmoinnin perusteita: monimuotoisuus

Monimuotoisuutta (polymorphismia) voi Javassa toteuttaa esimerkiksi määrittelemällä eri luokille samannimisiä metodeja. Voimme esimerkiksi määritellä luokalle Elain metodin void aantele(String). Luokan Elain aliluokille (perintä) voidaan määritellä kullekin oma vastaavan niminen metodi joka toimii oman luokkansa mukaisesti. Java kuten muutkin oliokielet ratkaisevat tällaisten operaatioiden toteutustavan käännösvaiheessa. Tätä kutsutaan myöhäiseksi sidonnaksi. Pieni Eclipse projekti monimuotoisuudesta javalla oheisessa linkissä... Continue Reading →

Java ohjelmoinnin perusteita: rajapinta

Rajapinnalla (interface) voidaan kuvata niitä metodeja, joita sen käyttäytyminen toteuttaa. Toisin kuin abstrakti luokka, rajapinta ei ota kantaa yhdenkään metodin toimintaan. Rajapinta ei myöskään esitä muuttujia, elleivät ne ole vakioita (final). Java sallii rajapintojen moniperinnän. Rajapinnan voidaan katsoa olevan vaatimus tai sopimus siitä, mitä sen toteuttavat luokat tarjoavat. Esimerkiksi rajapinta Noppapeli voi määritellä metodin: jolloin... Continue Reading →

WordPress.com.

Ylös ↑