Javan perusteita. Janne Käki

Samankaltaiset tiedostot
Luokat ja oliot. Ville Sundberg

Mikä yhteyssuhde on?

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Olio-ohjelmointi Javalla

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

7. Näytölle tulostaminen 7.1

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Java kahdessa tunnissa. Jyry Suvilehto

Aalto Yliopisto T Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Metodien tekeminen Javalla

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Taulukot. Jukka Harju, Jukka Juslin

ITKP102 Ohjelmointi 1 (6 op)

9. Periytyminen Javassa 9.1

1. Omat operaatiot 1.1

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

ITKP102 Ohjelmointi 1 (6 op)

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Sisältö. 22. Taulukot. Yleistä. Yleistä

Rajapinta (interface)

7. Oliot ja viitteet 7.1

4. Luokan testaus ja käyttö olion kautta 4.1

9. Periytyminen Javassa 9.1

2. Olio-ohjelmoinista lyhyesti 2.1

Ohjelmointi 2 / 2010 Välikoe / 26.3

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

19. Olio-ohjelmointia Javalla 19.1

1 Tehtävän kuvaus ja analysointi

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

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

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

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Sisältö. 2. Taulukot. Yleistä. Yleistä

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

12 Mallit (Templates)

Ohjelmoinnin jatkokurssi, kurssikoe

public static void main (String [] args)

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Java-kielen perusteet

YHTEYSSUHDE (assosiation)

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Oliot viestivät metodeja kutsuen

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

4. Olio-ohjelmoinista lyhyesti 4.1

Listarakenne (ArrayList-luokka)

Java-kielen perusteet

Java-kielen perusteet

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

16. Javan omat luokat 16.1

KOHDELUOKAN MÄÄRITTELY

14. Poikkeukset 14.1

Luokan sisällä on lista

- Komposiittityypit - Object (Mukaanlukien funktiot) - Array. - Erikoisdatatyypit - null - undefined

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

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

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

11. Javan valintarakenteet 11.1

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

14. Poikkeukset 14.1

Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat:

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointi 2, välikoe

Periytyminen (inheritance)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet

Ohjelmistojen mallintaminen, sekvenssikaaviot

Lista luokan sisällä

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Ohjelmoinnin perusteet, kurssikoe

Muuttujat ja kontrolli. Ville Sundberg

Ohjelmoinnin peruskurssien laaja oppimäärä

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

ITKP102 Ohjelmointi 1 (6 op)

Taulukot, silmukat ja muut joka koodin pikku veijarit

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Java-kielen perusteita

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

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

Luokan muodostimet (Constructors)

12. Javan toistorakenteet 12.1

7/20: Paketti kasassa ensimmäistä kertaa

Kooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.

UML ja luokkien väliset suhteet

12. Javan toistorakenteet 12.1

Operaattorin ylikuormitus ja käyttäjän muunnokset

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;

Transkriptio:

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ä). Muuttujat ja metodit voi tietokoneen puolesta nimetä (melkein) ihan miten vaan, olennaista on vain, että samasta muuttujasta tai metodista käytetään johdonmukaisesti samaa nimeä. Java-kielessä on kuitenkin joitakin kymmeniä avainsanoja (public, private, int, void, true, null, return,...), jotka on varattu tiettyyn käyttöön. Näitä ei siis voi valita muuttujien nimiksi. Se, että muuttujat ja metodit nimetään fiksusti ja käyttötarkoitusta kuvaavasti, on tärkeää nimenomaan (ja vain) koodia lukevan ihmisen kannalta. Ohjelman suoritus on normaalisti (virheettömänä) täysin näkymätöntä. Siksi tarvitaan tulostuksia, jotta saisimme käsityksen siitä, mitä ohjelmassa tapahtuu mitä paremmat tulostukset, sitä parempi käsitys.

Erilaisia muuttujia public class Mursu { private String nimi; private int nopeus; public Mursu(String nimi, int nopeus) { this.nimi = nimi; this.nopeus = nopeus; attribuutit määrittävät olion tilan eli ominaisuuksien arvot parametrit antavat metodille sen suorituksen kannalta tarpeelliset lähtötiedot apumuuttujat mahdollistavat jonkin arvon muistamisen niin kauan kuin sitä tarvitaan public double liiku(double aika) { double matka = aika * this.nopeus; System.out.println(nimi + lyllersi + matka + km. ); return matka;

sijoitusoperaattori (ei yhtäsuuruusmerkki!) Sijoituslause int luku = (5 + 4) * 8-7; Luetaan oikealta vasemmalle. 1. Selvitetään oikeanpuoleisen lausekkeen arvo. 2. Sijoitetaan tämä arvo vasemmalla puolella mainittuun muuttujaan. laskuri = laskuri + 1; 2. Sijoitetaan tämä arvo laskurin uudeksi arvoksi. 1. Lasketaan yhteen laskurin nykyinen arvo ja yksi.

Palauttaminen vs. tulostaminen Metodi, joka palauttaa tekstin böö : Metodi, joka tulostaa tekstin böö : paluuarvon tyyppi ei palauta mitään public String palautaböö() { return böö ; public void tulostaböö() { System.out.println( böö ); antaa palautettavan arvon käyttöön sille, joka metodia kutsui tuottaa tekstin näytölle String bööteksti = palautaböö(); böö System.out.println(bööTeksti);

Attribuutit Oliokohtaiset Luokan yksittäisen ilmentymän eli olion ominaisuudet. Määrittelevät olion tilan. Yleensä yksityisiä, eli vain oliolla itsellään on suora pääsy käsiksi attribuuttien arvoihin. Luokkakohtaiset (static) Ominaisuuksia, jotka ovat kaikkien luokasta luotujen olioiden yhteisessä käytössä. Usein julkisia, eli kuka tahansa näkee nämä. Yleensä lisäksi vakioita, eli niille asetetaan tietty arvo, jota ei jälkeenpäin pysty muuttamaan. Metodit Luokan yksittäisen ilmentymän eli olion toiminnot, mitä olio osaa. Antavat mahdollisuuden saada tietoja olion tilasta ja muuttaa sitä. (Olion metodien tehtävänä on siis tarjota rajapinta, jonka avulla ulkopuolinenkin voi kysyä ja jopa muokata olion attribuuttien arvoja.) Metodeja, jotka eivät kuulu millekään yksittäiselle oliolle. (Niinpä sana this ei merkitse tällaisessa metodissa mitään.) Pääohjelmametodi on aina tällainen. Jos siellä halutaan testata jotakin yksittäisen olion metodia, tällainen olio pitää ensin luoda ja laittaa talteen johonkin muuttujaan.

Halutaan luoda uusi Pelotteluesine... ominaisuuksien määrä Pelotteluesine private int pelottavuus public Pelotteluesine(String nimi, double paino, int pelottavuus) Esine private String nimi private double paino public Esine(String nimi, double paino) Object public Object() Kun luodaan uutta Pelotteluesinettä, on sille ensin rakennettava yläluokkien määrittelemä perusta alustettava ne ominaisuudet, jotka sille kuuluvat 1) Objectina ja 2) Esineenä. public Pelotteluesine(String nimi, double paino, int pelottavuus) { super(nimi, paino); this.pelottavuus = pelottavuus; public Esine(String nimi, double paino) { super(); this.nimi = nimi; this.paino = paino; public Object() {......mutta ennen pelotteluesineen oman pelottavuus-ominaisuuden alustusta on varmistettava, että perustana on oikeaoppinen Esine. Siksi ihan aluksi kutsutaan Esine-luokan luontimetodia......jonka aluksi puolestaan kutsutaan vielä Object-luokan konstruktoria. (Tässä super();ia ei olisi pakko kirjoittaa, koska nyt yläluokan luontimetodille ei tarvitse antaa parametreja. Esineelle sen sijaan täytyi.)