Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

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

Samankaltaiset esitykset


Esitys aiheesta: "Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä."— Esityksen transkriptio:

1 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.

2 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.

3 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”.

4 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:

5 Johdetun luokan olion alustus tMyn5

6 Johdetun luokan olion alustus tMyn6

7 Johdetun luokan olion alustus tMyn7

8 Johdetun luokan olion alustus tMyn8 Nyt luotiin olio kantaluokkaan:

9 Johdetun luokan olion alustus tMyn9 Seuraavaksi luodaan olio johdettuun luokkaan:

10 Johdetun luokan olion alustus tMyn10

11 Johdetun luokan olion alustus tMyn11

12 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:

13 Johdetun luokan olion alustus tMyn13

14 Johdetun luokan olion alustus tMyn14

15 Johdetun luokan olion alustus tMyn15

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

17 Johdetun luokan olion alustus tMyn17 Seuraavaksi luodaan olio johdettuun luokkaan:

18 Johdetun luokan olion alustus tMyn18

19 Johdetun luokan olion alustus tMyn19

20 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.

21 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.

22 Johdetun luokan olion alustus tMyn22

23 Johdetun luokan olion alustus tMyn23

24 Johdetun luokan olion alustus tMyn24

25 Johdetun luokan olion alustus tMyn25

26 Johdetun luokan olion alustus tMyn26

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

28 Johdetun luokan olion alustus tMyn28

29 Johdetun luokan olion alustus tMyn29

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

31 Johdetun luokan olion alustus tMyn31

32 Johdetun luokan olion alustus tMyn32

33 Johdetun luokan olion alustus tMyn33

34 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:

35 Johdetun luokan olion alustus tMyn35

36 Johdetun luokan olion alustus tMyn36

37 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.


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

Samankaltaiset esitykset


Iklan oleh Google