Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.

Slides:



Advertisements
Samankaltaiset esitykset
Tehtävä 3: PowerPoint Heli Lämsä.
Advertisements

Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
JavaScript (c) Irja & Reino Aarinen, 2007
Luokkien väliset koostesuhteet
Luokan otsikko- ja toteutustiedosto tMyn1 Luokan otsikko- ja toteutustiedosto •Tähän asti ohjelmaesimerkit on toteutettu siten, että kaikki koodi on yhdessä.
Muutamia käsitteitätMyn1 Muutamia käsitteitä •Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan,
Datan määrittely, MySQL
Aloitetaan normalisoimattomasta raakadatasta
Tietokantatapahtuman hallinta
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Relaatiomallin perusteet
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
Taulukoiden määrittely, käsittely ja kopiointi Vaihtoehdot taulukoille
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely •Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
C-ohjelmointi, kevät 2006 Taulukot Binääritiedostot Luento
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Ohjelman jakaminen useampaan tiedostoon Olio-ohjelmointi (C++) KYAMK, Jarkko Ansamäki 2001.
Olio-ohjelmoinnin perusteet luento 3
OLIO-OHJELMOINTI PERUSTEET PERUSTIETOTYYPIT
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
Tehtävä 3: PowerPoint Harjoitus.
Tehtävä 3: PowerPoint Ville Julkunen.
Fi.opasnet.org fi.opasnet.org/fi/Ydinvoima Haluamme tietää Sinun mielipiteesi. Äänestikö kansanedustajasi oikein ydinvoimasta? Kansalaisparlamentti ydinvoimasta.
Luokan muodostintMyn1 Luokan muodostin Olioihin kohdistuvia automaattisia toimintoja ovat luonti, alustus, kopiointi, sijoitus, tyhjennys ja tuhoaminen.
Lineaarinen lohkokoodaus, Block Coding
Vakio-osoitin ja osoitin vakioon tMyn1 Vakio-osoitin ja osoitin vakioon Tavallinen osoitin voi vaihtaa osoitettavaa keskusmuistialuetta. Tämä voidaan tehdä.
Luokkien löytyminen käytännössä tMyn1 Luokkien löytyminen käytännössä Kun aletaan ratkaista elävän elämän ohjelmointitehtäviä, niin ensimmäisten asioiden.
Johdanto HTML-julkaisukieleen
Dynaamiset oliottMyn1 Dynaamiset oliot Dynaamisen olion tunnuksen esittely ja olion määrittely voivat tapahtua yhtäaikaisesti tai eri aikaan. Dynaamisen.
Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.
Virtuaaliset jäsenfunktiot tMyn1 Virtuaaliset jäsenfunktiot Virtuaalinen jäsenfunktio on esiteltävä monimuotoisessa kantaluokassa. Virtuaalisen jäsenfunktion.
Funktion esittely eli prototyyppi tMyn1 Funktion esittely eli prototyyppi Funktion esittely (function declaration) kertoo funktion nimen, parametrien tyypit.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Luokan muodostintMyn1 Luokan muodostin Olioihin kohdistuvia automaattisia toimintoja ovat luonti, alustus, kopiointi, sijoitus, tyhjennys ja tuhoaminen.
Tietokanta-analyysi, suunnittelu ja toteutus
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
Lomakkeet ja vuorovaikutteisuus
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Virheenpaljastus- ja korjauskoodit tMyn1 Virheenpaljastus- ja korjauskoodit Virheen havaitseminen Tässä vaaditaan ainoastaan se, että pystytään toteamaan.
Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.
Ohjelman keskeytys virhetilanteessa tMyn1 Ohjelman keskeytys virhetilanteessa Poikkeustilanteet voidaan ryhmitellä logiikkavirheisiin ja muihin ajonaikaisiin.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Johdetun luokan olion esittely... tMyn1 Johdetun luokan olion esittely ja määrittely Esittelyluokka tarkoittaa olion tunnuksen luokkaa. Määrittelyluokka.
FunktiottMyn1 Funktiot Funktiot voidaan jakaa –Kirjastofunktioihin, jotka ovat valmiina kaikkien käytössä. Erikoisempien kirjastofunktioiden käyttöönotto.
Vesa Ollikainen & Outi Grotenfelt
Poikkeustenkäsittely- lohkot tMyn1 Poikkeustenkäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw.
Oman poikkeus- käsittelyfunktion tMyn1 Oman poikkeuskäsittelyfunktion määrittely Funktion tulisi muodostaa ainoastaan sellaisia poikkeuksia, jotka on sallittu.
11. Rajapinnat Sisällys Mitä rajapinnat ovat? Kuinka ne määritellään ja otetaan käyttöön? Moniperiytyminen rajapintojen avulla. Varoituksen.
Tekstitiedostoon kirjoittaminen tMyn1 Tekstitiedostoon kirjoittaminen Tiedostoja käsitellään ohjelmassa tiedosto-olion avulla. Tiedosto-olion luokka sisältää.
Tehtävä 3: PowerPoint Ilkka Huttunen. Tämän tulee olla DIA 2. Tämä dia on nyt dia 1. ◦ Siirrä tämä dia siten, että siitä tulee dia 2. ◦ Lisää tähän esitykseen:
Monimuotoinen luokka tMyn1 Monimuotoinen luokka Monimuotoinen luokka mahdollistaa saman jäsenfunktion toteutuksen monella tavalla. Tällöin puhutaan virtuaalisesta.
Tiedon vieminen funktiolle tMyn1 Tiedon vieminen funktiolle, parametrit Argumentin vieminen funktiolle voidaan toteuttaa kahdella menetelmällä: –Pass-by-Value.
Kantaluokan määrittely tMyn1 Kantaluokan määrittely Perinnän käyttöön liittyvät varatut sanat private, protected, public, final ja abstract. Ne tarkoittavat.
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
Tehtävä 3: PowerPoint Tomi Ilmonen. Ohjeistus Tämä on tehtävä 3: Power Point Etene tässä olevien ohjeiden mukaan. ◦ Älä ”hypi” eli käy kohta kohdalta.
Tehtävä 3: PowerPoint Jarmo Lautamäki. Tämän tulee olla DIA 2. Tämä dia on nyt dia 1. ◦ Siirrä tämä dia siten, että siitä tulee dia 2. ◦ Lisää tähän esitykseen:
Kesätyöntekijöiden kommentteja Opasnetistä ja ydinvoimatyöstä: ”Kun tulin kesätöihin minulla oli vain jokin suuntaa antava aavistus siitä mitä meinattiin.
11. Rajapinnat.
Poikkeustenkäsittelylohkot try-catch
Kantaluokan määrittely
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Kantaluokan määrittely
Luokan määrittely class-määreellä
Esityksen transkriptio:

Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä varaa tilan oliolle ja kutsuu luokkahierarkian muodostimia olion alustusta varten. Johdetun luokan oliolle varattavan tilan koko on johdetun luokan ja kantaluokan tietojäsenten vaatiman tilanvarauksen tavumäärä yhteenlaskettuna. Johdetun luokan olio saa kanta- ja johdetussa luokassa määritellyt tiedot.

Johdetun luokan olion alustus tMyn2 Luotaessa olio johdettuun luokkaan alustuu kantaluokkaan syntynyt ilmentymä ensin ja sen jälkeen johdettuun luokkaan syntynyt ilmentymä. Järjestelmä suorittaa siis johdetun luokan muodostimen rungon vasta kantaluokan muodostimen rungon jälkeen. Koska aina ohjelman kirjoittaja kirjoittaa johdetun luokan muodostimeen kantaluokan muodostimen kutsun, joutuu ohjelmoija itse varmistamaan (=kirjoittamaan koodinsa, pitämään huolen siitä), että johdetun luokan muodostin ei tee mitään alustuksia ennen kuin kantaluokan muodostin on kutsuttu ja siellä oleva koodi on suoritettu.

Johdetun luokan olion alustus tMyn3 Olion tyhjennys ja hajottimien suoritusjärjestys on päinvastainen. Siis johdetun luokan hajottimeen tulee ensimmäisenä kirjoittaa siihen samaiseen luokaan liittyvä hajottimen koodi. Vasta kaiken tämän jälkeen seuraa kantaluokan hajottimen kutsu. Näin varmistuu, että jotakin vielä tarvittavaa tietoa ei tule poistettua ennen aikojaan. Jos siis ensimmäiseksi kutsuttaisiin kantaluokan hajotinta, niin tällaisessa tapauksessa voisi käydä niin, että johdetun luokan oliolta tulisi ”vedettyä matto jalkojen alta”.

Johdetun luokan olion alustus tMyn4 Aloitetaan helpolla tapauksella: kantaluokalla on ainoastaan oletusmuodostin (joka kaiken lisäksi alustaa kantaluokan tietojäsenet aina samoilla arvoilla), jolloin johdetun luokan muodostimien toteutus onnistuu vanhoilla ohjeilla. Kantaluokan muodostimen kutsu tulee aina kirjoittaa johdetun luokan muodostimeen. Kirjoitetaan kumpaankin luokaan myös hajotin, vaikka ei niillä mitään tehtävää olekaan tässä ympäristössä. Näin nähdään kätevästi muodostimien ja hajottimien oikea kutsujärjestys:

Johdetun luokan olion alustus tMyn5

Johdetun luokan olion alustus tMyn6

Johdetun luokan olion alustus tMyn7

Johdetun luokan olion alustus tMyn8 Nyt luotiin olio kantaluokkaan:

Johdetun luokan olion alustus tMyn9 Seuraavaksi luodaan olio johdettuun luokkaan:

Johdetun luokan olion alustus tMyn10

Johdetun luokan olion alustus tMyn11

Johdetun luokan olion alustus tMyn12 Entäpä jos kantaluokkaan on määritelty parametrillinen muodostin! Nyt tulee johdetun luokan muodostimessa olla järjestettynä toimiva tapa välittää tarvittavat argumentit kantaluokan muodostimelle. Seuraavassa tästä esimerkki:

Johdetun luokan olion alustus tMyn13

Johdetun luokan olion alustus tMyn14

Johdetun luokan olion alustus tMyn15

Johdetun luokan olion alustus tMyn16 Tässä on aluksi luotu olio kantaluokkaan:

Johdetun luokan olion alustus tMyn17 Seuraavaksi luodaan olio johdettuun luokkaan:

Johdetun luokan olion alustus tMyn18

Johdetun luokan olion alustus tMyn19

Johdetun luokan olion alustus tMyn20 Joskus ohjelmoija voi olla sitä mieltä, että johonkin luokkaan ei saa luoda (instantioida) lainkaan olioita. Tällaista toimintaa varten on olemassa varattu sana abstract. Tehdään esimerkki, jossa kantaluokka määritellään abstract -tyyppiseksi. Vaikka luokka on abstract -tyyppinen, niin sille voi olla määritelty tietojäseniä – aina ei ole.

Johdetun luokan olion alustus tMyn21 Tyypillisesti osa abstraktin luokan jäsenfunktioista ovat abstrakteja, osalle funktioista on tehty toteutus abstraktiin luokkaan. Johdetun luokan on toteutettava abstraktin kantaluokan abstraktit jäsenfunktiot, tai muuten tästä johdetusta luokasta tulee myös abstrakti. Kun abstrakti jäsenfunktio toteutetaan johdettuun luokkaan, niin saantimääreenä tulee olla sama (tai lievempi) kuin mitä on kantaluokassa.

Johdetun luokan olion alustus tMyn22

Johdetun luokan olion alustus tMyn23

Johdetun luokan olion alustus tMyn24

Johdetun luokan olion alustus tMyn25

Johdetun luokan olion alustus tMyn26

Johdetun luokan olion alustus tMyn27 Edellinen esimerkki alkaa toimimaan, kun kommentoidaan se rivi, jossa yritetään luoda kantaluokkaan olio:

Johdetun luokan olion alustus tMyn28

Johdetun luokan olion alustus tMyn29

Johdetun luokan olion alustus tMyn30 Kun abstrakti jäsenfunktio toteutetaan johdettuun luokkaan, niin saantimääreenä tulee olla sama (tai lievempi) kuin mitä on kantaluokassa:

Johdetun luokan olion alustus tMyn31

Johdetun luokan olion alustus tMyn32

Johdetun luokan olion alustus tMyn33

Johdetun luokan olion alustus tMyn34 Jos halutaan luoda abstrakti luokka, niin silloin on luontevinta, että samaisen luokan tavalliset jäsenfunktiot ovat myöskin abstrakteja – ainakin siis osa niistä jäsenfunktioista. Toisin päin on näin: jos sisällyttää luokkaan abstraktin jäsenfunktion, niin sitten on pakko nimetä myös kyseinen luokka abstraktiksi. Huom! Abstrakti jäsenfunktio ei saa sisältää runkoa, ei edes aaltosulkeita rungon kohdalla:

Johdetun luokan olion alustus tMyn35

Johdetun luokan olion alustus tMyn36

Johdetun luokan olion alustus tMyn37 Sellainen abstraktin luokan jäsenfunktio, joka on toteutettu abstraktissa luokassa, voidaan korvata (override) johdetussa luokassa. Yleisesti on suotavaa, että abstraktin luokan perivä johdettu luokka on jollakin tapaa loogisesti tähän kantaluokkaan liittyvä. Johdettu luokka voi periä vain yhden abstraktin kantaluokan.