Luokan muodostintMyn1 Luokan muodostin Olioihin kohdistuvia automaattisia toimintoja ovat luonti, alustus, kopiointi, sijoitus, tyhjennys ja tuhoaminen.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
JavaScript (c) Irja & Reino Aarinen, 2007
Luokkien väliset koostesuhteet
Muutamia käsitteitätMyn1 Muutamia käsitteitä •Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan,
© 2010 IBM Corporation1 Sisältö  Uusi sisältö luodaan aina sisällönhallinnassa –Uusi -> Sisältö –Tallenna nimellä olemasta olevasta sisällöstä  Tavallinen.
Kiintolevyn osiointi.
C:\RI400 hakemistosta valitaan ExcelPDFConverter ja klikataan sitä.
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.
13. Pakkaukset.
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
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
TIETO JA TIETOKONEOHJELMA TIETOKONEOHJELMA KÄSITTELEE TIETOJA TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA MENETELMILLÄ.
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.
© Jukka Harju, Jukka Juslin
Funktion esittely eli prototyyppi tMyn1 Funktion esittely eli prototyyppi Funktion esittely (function declaration) kertoo funktion nimen, parametrien tyypit.
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
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.
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
String-vertailusta ja Scannerin käytöstä (1/2)
Kuinka tehdä blogi o365:ssä
Muuttujat ja vakiottMyn1 Muuttujat ja vakiot PHP-kielen syntaksi on lainattu suurimmaksi osaksi C- kielestä. PHP on erityisesti HTML-dokumenttien sisään.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
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.
Poikkeukset Yleistä Virheeseen varautuminen tarkoittaa sitä, että ohjelmoija huomioi koodia kirjoittaessaan ajonaikaisen virheen mahdollisuuden.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Komponenttipohjainen ohjelmistotekniikka (TJTSS56) Osa 4 Kevätlukukausi 2010 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Markku Sakkinen.
@ Leena Lahtinen Toistorakenne Ohjelmassa toistetaan tiettyjä toimenpiteitä monta kertaa peräkkäin Toisto noudattaa sille kuuluvia tarkkoja standardoituja.
RAKENNUSPALIKOITA SEINÄJOEN KANSALAISOPISTO Jussi Rasku Aki Sirviö.
MultiMaker 7.0 Workshop Ohjelma, jossa voidaan luoda näyttäviä multimediasisältöjä. Yhtä sisältökoko-naisuutta kutsutaan esitykseksi. Ohjelmointitaitoja.
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.
Poikkeustenkäsittely- lohkot tMyn1 Poikkeustenkäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw.
Kontrollirakenteet laajemmin
Monimuotoinen luokka tMyn1 Monimuotoinen luokka Monimuotoinen luokka mahdollistaa saman jäsenfunktion toteutuksen monella tavalla. Tällöin puhutaan virtuaalisesta.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
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.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
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:
Ohjausrakenteet Määräävät ohjelmakoodin suoritusjärjestyksen Ehtolause if – else on muotoa if (lauseke) lause1 else lause2 Jos lauseke on tosi, niin suoritetaan.
Olio-ohjelmoinnin perusteet luento 2
MapInfon tiedostot TAB – Tiedosto, jonka avulla tietokanta avataan MapInfossa. Tiedostossa tietoja kentistä ja koordinaattijärjestelmästä. DAT, XLS. TXT.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Olio-ohjelmoinista lyhyesti. 2.2 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen.
String-vertailusta ja Scannerin käytöstä (1/2)
3. Olio-ohjelmoinista lyhyesti
Procedural Language Extensions to SQL
Poikkeustenkäsittelylohkot try-catch
Ohjelman keskeytys virhetilanteessa
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Muutamia käsitteitä Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan, perusluokan (superclass,
6. Metodit.
4. Attribuutit.
4. Luokan testaus ja käyttö olion kautta
Esityksen transkriptio:

Luokan muodostintMyn1 Luokan muodostin Olioihin kohdistuvia automaattisia toimintoja ovat luonti, alustus, kopiointi, sijoitus, tyhjennys ja tuhoaminen. Automaattiset toiminnot voivat aktivoitua järjestelmän käynnistämänä tai ohjelmoijan käynnistämänä. Olion luontiin liittyvät vaiheet ovat olion tilanvaraus ja olion alustus.

Luokan muodostintMyn2 Olion tuhoamiseen liittyvät vaiheet ovat olion tyhjennys ja olion tilanvapautus.

Luokan muodostintMyn3 Olion luontiin eli tilanvaraukseen liittyy olion tunnuksen esittely ja olion määrittely. Olion esittely liittää tunnuksen nimen olion tyyppiin eli luokkaan. Olion määrittely luo olion eli määrittely varaa keskusmuistitilan olion tiedoille. Olio saa luotaessa luokkansa mukaisen kehyksen eli luokka määrää sille varattavat tietojäsenet. Jäsenfunktiot eivät kopioidu jokaiselle oliolle, vaan kaikki luokan oliot käyttävät kertaalleen talletettua ohjelmakoodia.

Luokan muodostintMyn4 Olion alustus tapahtuu tilanvarauksen yhteydessä. Olion tietojäsenten alustustoimenpiteet sisältyvät erityiseen alustusta varten kirjoitettuun jäsenfunktioon, jota kutsutaan muodostimeksi (constructor). Tätä kirjoitellessa luokassa ei voi olla useita kuormitettuja (overloaded) muodostimia. Muodostimet voidaan jakaa kahteen ryhmään:

Luokan muodostintMyn5 oletusmuodostin (default constructor) –Olion tietojäsenten alustus oletusarvoilla tai sitten arvot kysytään ohjelman käyttäjältä. ohjelmoijan määrittelemät parametrilliset muodostimet –Olion tietojäsenten alustus ohjelmoijan tapauskohtaisesti määräämillä alkuarvoilla.

Luokan muodostintMyn6 Overloading a function name: If you have two or more function definitions for the same function name, that is called overloading. When you overload a function name, the function definitions must have different number of formal parameters or some formal parameters of different types. When there is a function call, the compiler uses the function definition whose number of formal parameters and types of formal parameters match the arguments in the function call.

Luokan muodostintMyn7 Luokkaan määritellään muodostin, jotta voitaisiin varmistaa, että olion tietojäsenet ovat alustettuja ja että ohjelma ei keskeydy ajonaikaiseen virheeseen tietojäsenen sisältöön viitattaessa. Muodostimen tehtäväksi voidaan antaa myös vaikkapa tietokantayhteyden avaaminen. Järjestelmä kutsuu muodostinta automaattisesti olion tilanvarauksen yhteydessä.

Luokan muodostintMyn8 Oletusmuodostin (default constructor) alustaa olion tietojäsenet oletusarvoilla tai ohjelman käyttäjän antamilla arvoilla. Oletusmuodostin voi olla järjestelmän generoima tai ohjelmoijan kirjoittama. Järjestelmä generoi luokalle oletusmuodostimen vain, jos ohjelmoija ei ole toteuttanut luokkaan muodostinta. Järjestelmän generoima muodostin ei alusta tietojäseniä. Järjestelmä kutsuu oletusmuodostinta automaattisesti olion tilanvarauksen yhteydessä.

Luokan muodostintMyn9 Oletusmuodostimeksi voidaan myös kutsua muodostinta, joka kysyy ohjelman käyttäjältä arvot tietojäsenille! Olion määrittely varaa oliolle keskusmuistitilan ja aiheuttaa automaattisesti oletusmuodostimen kutsun (jonka tulisi siis olla kernaasti ohjelmoijan tekemä!).

Luokan muodostintMyn10 Oletusmuodostimen määrittelyssä on huomioitava mm. seuraavaa: –Oletusmuodostimen nimi on (luokan nimi käy myös) __construct(). –Oletusmuodostin ei saa parametreja. –Oletusmuodostimella ei ole tyyppiä, oletusmuodostin ei siis palauta return-lauseella mitään. –Oletusmuodostinta koskevat samat näkyvyyssäännöt kuin muitakin luokan jäsenfunktioita. Oletusmuodostimeksi tulkitaan sellainen muodostin, jota voi kutsua ilman argumentteja.

Luokan muodostintMyn11 Jos ohjelmoija haluaa olion tietojäsenet alustettavaksi tietyillä oletusalkuarvoilla, hänen on määriteltävä itse oletusmuodostin. Toteutetaan oletusmuodostin ensiksi siten, että se alustaa olion tietojäsenet aina samoilla arvoilla (ei tietenkään ole käytännössä järkevää):

Luokan muodostintMyn12

Luokan muodostintMyn13

Luokan muodostintMyn14

Luokan muodostintMyn15 Varmistetaan seuraavaksi, että järjestelmän generoima oletusmuodostin ei ainakaan osaa alustaa tietojäseniä millään järjellisillä arvoilla:

Luokan muodostintMyn16

Luokan muodostintMyn17

Luokan muodostintMyn18

Luokan muodostintMyn19 Muutetaan seuraavaksi oletusmuodostinta siten, että ohjelman käyttäjä antaa tarvittavat arvot jäsenmuuttujille HTML-lomakkeen kautta:

Luokan muodostintMyn20 HTML-tiedosto näyttää tältä:

Luokan muodostintMyn21 PHP-tiedosto näyttää tältä:

Luokan muodostintMyn22

Luokan muodostintMyn23

Luokan muodostintMyn24

Luokan muodostintMyn25

Luokan muodostintMyn26

Luokan muodostintMyn27 Manuaalista voi lukea, että exit()-funktiolle voi antaa argumentiksi merkkijonon, joten tämä toimii aivan yhtä hyvin:

Luokan muodostintMyn28 Edellinen esimerkki voidaan toteuttaa toki myös niin, että kaikki koodi kirjoitetaan yhteen tiedostoon. Silloin on järjestettävä asia niin, että assosiatiivisesta taulukosta ($_POST[]) ei lueta mitään ennen kuin lomakkeelle on annettu järkeviä arvoja:

Luokan muodostintMyn29

Luokan muodostintMyn30

Luokan muodostintMyn31

Luokan muodostintMyn32

Luokan muodostintMyn33

Luokan muodostintMyn34

Luokan muodostintMyn35

Luokan muodostintMyn36

Luokan muodostintMyn37 Jos ohjelmoija haluaa alustaa oliot tilanvarauksen yhteydessä tapauskohtaisilla alkuarvoilla, ohjelmoija voi määritellä luokkaan parametrillisen muodostimen. Parametrillinen muodostin on aina ohjelmoijan kirjoittama. Parametrillisen muodostimen määrittelyssä noudatetaan samoja sääntöjä kuin oletusmuodostimen yhteydessä.

Luokan muodostintMyn38 Huomaa kuitenkin seuraavat asiat: –Parametrillisen muodostimen parametreihin voidaan määritellä tarvittaessa myös oletusarvot. –Tätä kirjoitettaessa luokka ei voi sisältää useita erilaisilla parametreilla varustettuja muodostimia. –Parametrillinen muodostin, jonka kaikilla parametreilla on oletusarvo, toimii oletusmuodostimena! –Järjestelmä ei generoi oletusmuodostinta, jos ohjelmoija on määritellyt luokkaan parametrillisen muodostimen.

Luokan muodostintMyn39

Luokan muodostintMyn40

Luokan muodostintMyn41

Luokan muodostintMyn42 Muodostin on siltä osin samanlainen kuin mikä tahansa funktio: funktion muodolliselle parametrille voidaan antaa oletusarvo. Mikäli kaikille muodollisille parametreille ei anneta oletusarvoja, niin silloin oletusarvojen antaminen on aloitettava oikeasta kulmasta, eikä parametreja saa ”jättää väliin”. Oletusarvon on oltava vakiolauseke.

Luokan muodostintMyn43

Luokan muodostintMyn44

Luokan muodostintMyn45

Luokan muodostintMyn46 Tällä hetkellä (tätä kirjoitellessa) luokassa ei voi olla monta parametrillista muodostinta erilaisia alustustilanteita varten (muodostimen kuormittaminen):

Luokan muodostintMyn47

Luokan muodostintMyn48

Luokan muodostintMyn49

Luokan muodostintMyn50 Tällä hetkellä (tätä kirjoitellessa) luokassa ei voi olla omatekoista oletusmuodostinta ja parametrillista muodostinta yhtä aikaa toteutettuna:

Luokan muodostintMyn51

Luokan muodostintMyn52

Luokan muodostintMyn53

Luokan muodostintMyn54 Kokeillaan seuraavaksi antaa parametrilliselle muodostimelle oletusarvot kaikille parametreille. Kohdellaan sitä sitten niin kuin se olisi oletusmuodostin:

Luokan muodostintMyn55

Luokan muodostintMyn56

Luokan muodostintMyn57

Luokan muodostintMyn58 Olion tietojäsenten tyhjennys tapahtuu olion tilanvapautuksen yhteydessä. Tyhjennykseen liittyvät toimenpiteet sisältyvät jäsenfunktioon hajotin (destructor). Luokassa voi olla vain yksi hajotin. Hajotinta voidaan kutsua tilanvapautushetken lisäksi myös muulloin, kun olio halutaan tyhjentää - tämä on käytännössä harvinaista. Yksi järjellinen tehtävä itse tehdylle hajottimelle voisi olla vaikka tietokantayhteyden sulkeminen.

Luokan muodostintMyn59 Hajottimen määrittelyssä on huomioitava mm. seuraavaa: –Hajottimen nimi on __destruct(). –Hajotin ei saa parametreja. –Hajottimella ei ole tyyppiä, hajotin ei siis palauta return- lauseella mitään. –Hajotinta koskevat samat näkyvyyssäännöt kuin muitakin luokan jäsenfunktioita.

Luokan muodostintMyn60

Luokan muodostintMyn61

Luokan muodostintMyn62