Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
dvprog_14 [2017-04-12 09:33]
Daniel Viström
dvprog_14 [2020-05-18 20:20]
Daniel Viström
Line 1: Line 1:
-====== Genomgång 11 - Objektorienterad programmering ======+====== Genomgång - Objektorienterad programmering ======
  
 Viktgt att du lär dig vad som menas med följande och att du kan skilja dem åt: Viktgt att du lär dig vad som menas med följande och att du kan skilja dem åt:
Line 6: Line 6:
   Attribut   Attribut
   Metod   Metod
 +  Konstruktor
   Arv   Arv
  
Line 11: Line 12:
  
 ==== Exempel 1 ==== ==== Exempel 1 ====
- 
 <code php> <code php>
 <?php <?php
 +include 'counter.php';
 +include 'head.php';
  
-// Klassen kan ligga i samma fil som huvudprogrammet, men försök att lägga det i separat fil som i exempel 2.+$a = new Counter(); 
 +echo $a->getValue() '<br>';
  
 +// $a->value--; // Går inte att komma åt eftersom attributet är private.
 +
 +$i = 0;
 +while ($i < 20){
 +  $a->klick();
 +  $i++;
 +}
 +echo $a->getValue() . '<br>';
 +
 +$b = new Counter();
 +$b->klick();
 +echo $b->getValue() . '<br>';
 +
 +$b->zero();
 +echo $b->getValue() . '<br>';
 +
 +include 'foot.php';
 +
 +</code>
 +
 +Klassen **Counter** ligger i en separat fil, **counter.php**. \\ 
 +Klassen kan ligga i samma fil som huvudprogrammet, men försök att lägga det i separat fil.
 +
 +<code php>
 +<?php
 class Counter{ class Counter{
  
Line 37: Line 65:
   }   }
 } }
- 
- 
-// Här börjar huvudprogrammet. 
- 
-include('head.php'); 
- 
-$a = new Counter(); 
-echo $a->getValue() . '<br />'; 
- 
-// $a->value--; // Går inte att komma åt eftersom attributet är private. 
- 
-$i = 0; 
-while ($i < 20){ 
-  $a->klick(); 
-  $i++; 
-} 
-echo $a->getValue() . '<br />'; 
- 
-$b = new Counter(); 
-$b->klick(); 
-echo $b->getValue() . '<br />'; 
- 
-$b->zero(); 
-echo $b->getValue() . '<br />'; 
- 
-include('foot.php'); 
- 
 </code> </code>
  
Line 70: Line 71:
 <code php> <code php>
 <?php <?php
-include('head.php')+include 'head.php'; 
-include('animals.php');+include 'animals.php';
  
  
 $a1 = new Animal();   // Skapar en ny instans (objekt) av klassen Animal. Vikten blir 0 (se klassen). $a1 = new Animal();   // Skapar en ny instans (objekt) av klassen Animal. Vikten blir 0 (se klassen).
-echo 'Djur 1 har vikt: ' . $a1->getWeight() . '<br />';  // -> för att komma åt objektets metoder.+echo 'Djur 1 har vikt: ' . $a1->getWeight() . '<br>';  // -> för att komma åt objektets metoder.
    
 $a2 = new Animal(23); // Skapar en ny instans (objekt) av klassen Animal med vikt 23. $a2 = new Animal(23); // Skapar en ny instans (objekt) av klassen Animal med vikt 23.
 $a2->setLegs(2);  // Ändrar till 2 ben. $a2->setLegs(2);  // Ändrar till 2 ben.
-echo 'Djur 2 har vikt: ' . $a2->getWeight() . '<br />'; +echo 'Djur 2 har vikt: ' . $a2->getWeight() . '<br>'; 
-echo 'Djur 2 har ' . $a2->getLegs() . ' ben<br />';+echo 'Djur 2 har ' . $a2->getLegs() . ' ben<br>';
 echo $a2->info(); echo $a2->info();
  
 $d1 = new Dog(18); // Skapar en ny instans (objekt) av klassen Dog. $d1 = new Dog(18); // Skapar en ny instans (objekt) av klassen Dog.
 $d1->setLegs(3);  // Versionen av setLegs i Dog körs så inget ändras. $d1->setLegs(3);  // Versionen av setLegs i Dog körs så inget ändras.
-echo 'Hund 1: ' . $d1->getLegs() . '<br />'; +echo 'Hund 1: ' . $d1->getLegs() . '<br>'; 
-echo 'Hund 1: ' . $d1->getWeight() . '<br />';+echo 'Hund 1: ' . $d1->getWeight() . '<br>';
 echo $d1->info();  // Det kan vara bra att fatta vad som händer här... echo $d1->info();  // Det kan vara bra att fatta vad som händer här...
    
-include('foot.php');+include 'foot.php';
  
 </code> </code>