Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
dvprog_14 [2016-05-10 09:43] Daniel Viström |
dvprog_14 [2020-05-18 20:20] Daniel Viström |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Genomgång | + | ====== 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 ' | ||
+ | include ' | ||
- | // Klassen kan ligga i samma fil som huvudprogrammet, | + | $a = new Counter(); |
+ | echo $a-> | ||
+ | // $a-> | ||
+ | |||
+ | $i = 0; | ||
+ | while ($i < 20){ | ||
+ | $a-> | ||
+ | $i++; | ||
+ | } | ||
+ | echo $a-> | ||
+ | |||
+ | $b = new Counter(); | ||
+ | $b-> | ||
+ | echo $b-> | ||
+ | |||
+ | $b-> | ||
+ | echo $b-> | ||
+ | |||
+ | include ' | ||
+ | |||
+ | </ | ||
+ | |||
+ | Klassen **Counter** ligger i en separat fil, **counter.php**. \\ | ||
+ | Klassen kan ligga i samma fil som huvudprogrammet, | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
class Counter{ | class Counter{ | ||
Line 37: | Line 65: | ||
} | } | ||
} | } | ||
- | |||
- | |||
- | // Här börjar huvudprogrammet. | ||
- | |||
- | include(' | ||
- | |||
- | $a = new Counter(); | ||
- | echo $a-> | ||
- | |||
- | // $a-> | ||
- | |||
- | $i = 0; | ||
- | while ($i < 20){ | ||
- | $a-> | ||
- | $i++; | ||
- | } | ||
- | echo $a-> | ||
- | |||
- | $b = new Counter(); | ||
- | $b-> | ||
- | echo $b-> | ||
- | |||
- | $b-> | ||
- | echo $b-> | ||
- | |||
- | include(' | ||
- | |||
</ | </ | ||
Line 70: | Line 71: | ||
<code php> | <code php> | ||
<?php | <?php | ||
- | include(' | + | include ' |
- | include(' | + | include ' |
$a1 = new Animal(); | $a1 = new Animal(); | ||
- | echo 'Djur 1 har vikt: ' . $a1-> | + | echo 'Djur 1 har vikt: ' . $a1-> |
$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-> | $a2-> | ||
- | echo 'Djur 2 har vikt: ' . $a2-> | + | echo 'Djur 2 har vikt: ' . $a2-> |
- | echo 'Djur 2 har ' . $a2-> | + | echo 'Djur 2 har ' . $a2-> |
echo $a2-> | echo $a2-> | ||
$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-> | $d1-> | ||
- | echo 'Hund 1: ' . $d1-> | + | echo 'Hund 1: ' . $d1-> |
- | echo 'Hund 1: ' . $d1-> | + | echo 'Hund 1: ' . $d1-> |
echo $d1-> | echo $d1-> | ||
- | include(' | + | include ' |
</ | </ | ||
Line 104: | Line 105: | ||
private $legs; // Kommer inte åt denna variabel i underklassen Dog om det är satt som private. | private $legs; // Kommer inte åt denna variabel i underklassen Dog om det är satt som private. | ||
- | public function __construct($weight=0){ // | + | public function __construct($weight=1000){ // |
$this-> | $this-> | ||
+ | $this-> | ||
} | } | ||
Line 133: | Line 135: | ||
| | ||
// Ny definition av konstruktorn som sätter antal ben till 4. | // Ny definition av konstruktorn som sätter antal ben till 4. | ||
- | public function __construct($weight=0){ | + | public function __construct($weight=1000){ |
$this-> | $this-> | ||
parent:: | parent:: | ||
Line 139: | Line 141: | ||
| | ||
// Ny definition av funktionen som också finns i Animal så att det inte ska gå att ändra antal ben. | // Ny definition av funktionen som också finns i Animal så att det inte ska gå att ändra antal ben. | ||
- | public function setLegs(){ | + | public function setLegs($legs){ |
} | } | ||