Tietokoneiden näyttöjä, joissa näkyy kuvaa automaatiolaboratorion laitteistosta. Monitoreiden takana näkyy sama laitteisto kuin kuvissa.

timohei.net / Opintojaksot / 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

  1. Luo perusLaskenta() -luokka, joka tallentaa kaksi numeroa. Muista määritellä muodostinfunktio (constructor)! Luo tulosta() -metodi, joka tulostaa numerot selaimella!
  2. Luo summaLaskenta() -luokka, joka periytyy perusLaskenta() -luokasta ja jossa tulosta() -metodi on korvattu talletettujen numeroiden summan tulostavalla metodilla!
  3. 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

<<  Edellinen
(2) Hakemistorakenne
Sivu 3/7Seuraava >>
(4) Osa B: Lomakkeiden käsittely
© Timo Heikkinen | timo piste heikkinen at oamk piste fi