Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin



Samankaltaiset tiedostot
ict02d Osio2- luento 3 Olio-ohjelmointi: Luokkien kirjoittaminen

Mikä yhteyssuhde on?

Olio-ohjelmointi Javalla

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

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

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

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

YHTEYSSUHDE (assosiation)

KOHDELUOKAN MÄÄRITTELY

9. Periytyminen Javassa 9.1

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Periytyminen (inheritance)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

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

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

Osion kaksi kertaus. Jukka Juslin. Jukka Juslin

P e d a c o d e ohjelmointikoulutus verkossa

Javan perusteita. Janne Käki

Luokat ja oliot. Ville Sundberg

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Oliot viestivät metodeja kutsuen

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

2. Olio-ohjelmoinista lyhyesti 2.1

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

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

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

Luokan sisällä on lista

public static void main (String [] args)

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

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

9. Periytyminen Javassa 9.1

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

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

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

Rajapinta (interface)

Taulukot. Jukka Harju, Jukka Juslin

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

Pakkauksen kokoaminen

Metodien tekeminen Javalla

TyontekijaOhjelma. +main() (käyttää) + = public - = private

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Ohjelmoinnin perusteet Y Python

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

UML ja luokkien väliset suhteet

Muutamia peruskäsitteitä

C# olio-ohjelmointi perusopas

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

UML Luokkakaavio 14:41

Osio2, olio-ohjelmointi: Luokkien ja olioiden käyttäminen Jukka Juslin

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

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

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

Ohjelmoinnin jatkokurssi, kurssikoe

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

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Vahva koostumussuhde (Composition)

P e d a c o d e ohjelmointikoulutus verkossa

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

18. Abstraktit tietotyypit 18.1

4. Olio-ohjelmoinista lyhyesti 4.1

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

Ohjelmistotekniikan menetelmät

Luokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)

Ohjelmistotekniikan menetelmät

Olioperustaisuus (object oriented)

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

8/20: Luokat, oliot ja APIt

Ohjelmoinnin peruskurssien laaja oppimäärä

T Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

19. Olio-ohjelmointia Javalla 19.1

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

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

11/20: Konepelti auki

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Java kahdessa tunnissa. Jyry Suvilehto

Listarakenne (ArrayList-luokka)

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

Interaktiivinen tarinankerronta

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Luokkakirjastot. esiintymämetodien käytöstä:

T Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.

Ohjelmistojen mallintaminen. Luento 7,

1. Olio-ohjelmointi 1.1

1. Omat operaatiot 1.1

Oliosuunnittelu ja luokkakohtaiset komponentit

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

2. Olio-ohjelmoinnin perusteita 2.1

Johdanto. Olio (Object) Luokka (Class) Olion kuvaaminen

2. Olio-ohjelmoinnin perusteita 2.1

JavaRMI 1 JAVA RMI. Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio:

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys

1 Tehtävän kuvaus ja analysointi

Transkriptio:

Olio-ohjelmointi: Luokkien toteuttaminen Jukka Juslin

Luokkien kirjoittaminen Tähän mennessä on käytetty valmiiksi määritettyjä luokkia. Nyt opimme kirjoittamaan omia luokkia olioiden kuvaamiseksi Seuraavaksi keskitymme näihin: luokan määritykset olion eli ilmentymän eli instanssin tieto kapselointi eli ilmentymän tietojen suojaus, ja sen käyttöön tarvittavat metodit(get, set) metodien määrittäminen ja parametrien välitys muodostimet

Luokat Luokka sisältää attribuutit, muodostimet ja metodit

Tiedon näkyvyys Tietoon, joka määritetään luokkatasolla voidaan viitata luokan kaikista metodeista käsin Tietoon, joka määritellään metodin sisällä, päästään käsiksi vain ko. metodin sisällä Tietoa, joka määritellään metodin sisällä kutsutaan paikalliseksi tiedoksi / paikalliseksi muuttujaksi

Kapselointi eli olion tietojen suojaaminen Voimme tarkastella oliota kahdesta näkökulmasta: sisäinen - luokan muuttujien ja metodien yksityiskohdat, eli luokan määrittäminen ulkoinen - palvelut, jotka olio tarjoaa ja kuinka olio vuorovaikuttaa muiden järjestelmän olioiden kanssa Ulkoisesta näkökulmasta olio on kapseloitu ilmentymä (eli kokonaisuus), se tarjoaa joukon määritettyjä palveluita Nämä palvelut määrittävät olion rajapinnan (eli interface), joka näkyy muille luokille

Kapselointi kapseloitua oliota voidaan ajatella mustana laatikkona sen sisäinen toiminta peitetään asiakkailta Asiakas kutsuu rajapintametodeja (tavalliset publictyyppiset metodit) nämä hallitsevat instanssin tietoa Asiakas Metodit Tieto

Näkyvyyden muuntelu Javassa kapselointi toetutetaan käyttämällä sopivia näkyvyysmääreitä(visibility modifiers) näkyvyysmääre on Javan varattu sana, joka määrittää tietyn metodin tai muuttujan luonteen Javassa on kolme näkyvyyden muuntelumäärettä: public, protected ja private protected määre liittyy periytymiseen, jota käsittelemme opintojaksomme osiossa kolme.

Näkyvyyden määritteet Luokan osiin (attribuutit tai metodit), jotka määritetään julkisiksi (public visibility) voidaan viitata mistä tahansa käsin Luokan osiin (attribuutit ja metodit), jotka määritetään yksityisiksi (private visibility) voidaan viitata ainoastaan ko. luokan sisältä Luokan osiin (attribuutit ja metodit), joille ei anneta näkyvyyttä (visibility) ollenkaan, annetaan oletusarvoinen näkyvyys (default visibility) ja näihin voidaan viitata mistä tahansa luokasta samassa paketissa

Näkyvyysmääreet public private Muuttujat, attribuutit Metodit Rikkovat kapselointia Tarjoavat palveluja asiakkaille Tukevat kapselointia Tukevat luokan muita metodeja

Get- ja set - metodit Koska ilmentymän tieto on yksityistä (private), luokka yleensä tarjoaa palveluita muuttujien arvojen lukemista ja päivittämistä varten get-metodi (accessor method) palauttaa muuttujan nykyisen arvon set-metodi (mutator method) muuttaa muuttujan arvoa (päivittää muuttujan arvoa) Nimet metodeille ovat muotoa getx ja setx, jossa X on attribuutin nimi (esim. setoppilasnumero(numero) Näitä metodeja kutsutaan gettereiksi ja settereiksi

Luokkien kirjoittaminen - this Muista this-avainsanan käyttö This-sanalla viitataan olion attribuuttiin Ilman this sanaa metodille tulevat parametrit on nimettävä erinimisiksi kuin luokan attribuutit This-viittaa aina kyseisellä hetkellä käytössä olevaan olioon Koko nykyinen olio voidaan palauttaa kirjoittamalla return(this);

tostring metodi Luokille kirjoitetaan tostring metodi tostring yhdistää Stringiksi olion attribuuttien arvon, kyseessä on ns. olion tilan tulostaminen Ilman tostring metodia saadaan oliosta tulostumaan ns. OID numero, joka on muistiosoite viitaten missä itse olio sijaitsee

Metodien kutsuminen luokan sisällä ja muista luokista Jos kutsuttu metodi on samassa luokassa tarvitaan vain metodin nimi kutsumiseen laske munmetodi munmetodi();

Metodien kutsumekanismit Kutsuttu metodi on usein osa toista luokkaa tai oliota: tutki onko kyseessä luokkametodi vai ilmentymämetodi mitä eroa on metodikutsussa? main teese autamua olio.teese(); autamua();

Pankkitiliesimerkki Katsotaan esimerkkiä, joka esittää luokkien ja metodien toteutuksen Esitämme pankkitilä luokalla, jonka nimi on Tili Pankkitilin tila voi sisältää pankkitilin numeron, saldon tällähetkellä ja tilin omistajan nimen Tilin käyttäytyminen (tai sen palvelut) sisältävät otot ja talletukset sekä koron lisäämisen tilille Toteutetaan luennon jälkeen harjoitustunneilla

Testausohjelmat Testausohjelma eli ajuriohjelman avulla testataan ilmentymäluokkine toimintaa Testausohjelmia tarvitaan varmistamaan luokkamääritysten toiminta Ohjelmassa on kokonaisuuden käynistävä mainmetodi ( ovi sovellukseen)

Pankkitili-esimerkki tili1 72354 tilnumero saldo 102.56 nimi Matti Nykänen tili2 69713 tilinumero saldo 140.00 nimi Pekka Pere