timohei.net / Opintojaksot / Aiemmin pitämäni opintojaksot / Internet-sovelluskehitys / Toisen jakson aineistoa (PHP) / Neljännen viikon tehtävät (PHP, osa 2) /
Osa A: Luokat ja oliot
Lue ensin alla olevat tehtävät. Silmäile sitten PHP Trainer Kit -kirjasta luokkia ja olioita käsittelevä Oppitunti 8 ja pistä merkille tehtäviin liittyvät kohdat. Tee sitten tehtävät käyttäen kirjaa hyväksi.
Käy läpi tämän sivun lopussa oleva esimerkki - siinä on kuvattu olio-ohjelmoinnin peruskäsitteet!
Tehtävät
- Luo perusLaskenta() -luokka, joka tallentaa kaksi numeroa. Muista määritellä muodostinfunktio (constructor)! Luo tulosta() -metodi, joka tulostaa numerot selaimella!
- Luo summaLaskenta() -luokka, joka periytyy perusLaskenta() -luokasta ja jossa tulosta() -metodi on korvattu talletettujen numeroiden summan tulostavalla metodilla!
- Luo erotusLaskenta() -luokka, joka periytyy perusLaskenta() -luokasta ja jossa tulosta() -metodi on korvattu talletettujen numeroiden erotuksen tulostavalla metodilla!
Jätä tiedostot palvelimelle tarkistettavakseni!
Perusesimerkki olio-ohjelmasta
<html> <head> <meta charset="utf-8"> <title>Olio-kokeilua</title> </head> <body> <?php class first_class {// Määritellään ominaisuudet (properties): var $name;// Määritellään metodit (methods): function first_class($n="Nimetön") {// Tämän metodin nimi on sama kuin luokan, // joten se suoritetaan aina, kun luodaan // tämän luokan mukainen uusi olio. // Tämän metodityyppiä sanotaan // muodostimeksi (constructor) $this->name = $n; } function sayHello() { print "Halloota, miun nimein on $this->name!<br>"; } }// Luodaan uusi luokka käyttämällä hyväksi // olemassa olevan luokan ominaisuuksia (properties) // ja metodeja (methods); tavallaan siis // kopioidaan luokkamäärittely: class second_class extends first_class {// Määritellään kantaluokassa (parent class) // first_class aiemmin määritelty metodi // toimimaan tässä luokassa eri tavalla: function sayHello() { print "En kerro nimeäin, lällää - eikun... ";// On kuitenkin mahdollista kutsua myös // kantaluokan metodia käyttämällä :: -operaattoria: first_class::sayHello(); } }// Luokkamäärittelyiden jälkeen alkaa "varsinainen" // ohjelma. Luodaan uusia luokkien (classes) mukaisia // olioita (objects) ja annetaan parametr(e)ina // muodostimen käyttämä(t) parametri(t): $obj1 = new first_class("Vilhelmi"); $obj2 = new second_class("Hippo");// Laitetaan luodut oliot töihin eli kutsutaan // niiden metodeja: $obj1->sayHello(); $obj2->sayHello();?> </body> </html>
Päivitetty 28.8.2022
© Timo Heikkinen | timo piste heikkinen at oamk piste fi