Object georiënteerd programmeren in PHP

Object georiënteerd programmeren in PHP
OOP in PHP
1 / 52
volgende
Slide 1: Tekstslide
PHPSoftware DeveloperMBOStudiejaar 2

In deze les zitten 52 slides, met interactieve quizzen en tekstslides.

Onderdelen in deze les

Object georiënteerd programmeren in PHP
OOP in PHP

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Leerdoelen
Aan het einde van deze les kun je: de basisprincipes van object georiënteerd programmeren in PHP uitleggen, voorbeeldcode van object georiënteerd programmeren in PHP schrijven en toepassen, en een quiz over de stof maken.

Slide 2 - Tekstslide

Introduceer de leerdoelen en leg uit wat studenten aan het einde van de les zullen kunnen doen.
Wat is object georiënteerd programmeren?
Object georiënteerd programmeren is een manier van programmeren waarbij het programma is opgebouwd uit objecten die met elkaar communiceren.

Lees goed hierna komt er een vraag.

Slide 3 - Tekstslide

Leg uit wat object georiënteerd programmeren is en waarom het belangrijk is.
Wat is object georiënteerd programmeren?
A
Een manier van programmeren waarbij het programma alleen bestaat uit regels code.
B
Een manier van programmeren waarbij het programma alleen bestaat uit variabelen.
C
Een manier van programmeren waarbij het programma alleen bestaat uit functies.
D
Een manier van programmeren waarbij het programma is opgebouwd uit objecten.

Slide 4 - Quizvraag

Deze slide heeft geen instructies

Class en object
Een class is een blauwdruk voor een object.
Een object is een instantie van een class.

Lees goed hierna komt er een vraag.

Slide 5 - Tekstslide

Leg het verschil tussen een class en een object uit.
Wat is een class?
A
Een instantie van een object.
B
Een blauwdruk voor een object.
C
Een taal om te programmeren.
D
Een functie in een programma.

Slide 6 - Quizvraag

Deze slide heeft geen instructies

Properties en methods
Properties zijn variabelen die bij een object horen.
Methods zijn functies die bij een object horen.

Lees goed hierna komt er een vraag.

Slide 7 - Tekstslide

Leg uit wat properties en methods zijn en hoe ze worden gebruikt.
Wat zijn properties?
A
Variabelen die bij een object horen
B
Functies die bij een object horen
C
Methodes die bij een object horen
D
Objecten die bij een variabele horen

Slide 8 - Quizvraag

Deze slide heeft geen instructies

Voorbeeld: class auto
<?php
class Auto{
private $merk; private $model;
public function __construct($merk, $model)
{
$this->merk = $merk; $this->model = $model;
}
public function getMerk()
{
return $this->merk;
}
public function getModel()
 {
return $this->model;
}}
$auto = new Auto('BMW', 'X5');
echo $auto->getMerk();
 // Output: BMW
?>




 class Auto // een klasse (class)
 {
 private $merk; // eigenschap (property)
 private $model;
 public function __construct($merk, $model) // methode (method)
 {
 $this->merk = $merk; // verwijzen naar naar een methode 
 $this->model = $model;
 }
 public function getMerk()
 {
 return $this->merk; // geef de waarde terug 
 }
 public function getModel()
  {
 return $this->model;
 }}
 $auto = new Auto('BMW', 'X5'); // een nieuw object maken 
 echo $auto->getMerk();  // Output: BMW // toon het merk                            Kijk goed hierna komt er een vraag.






Slide 9 - Tekstslide

Geef een voorbeeld van een class en laat zien hoe deze wordt gebruikt.
Wat is het doel van de constructor in deze klasse?
A
Het declareren van nieuwe eigenschappen
B
Het initialiseren van de eigenschappen van een object
C
Het aanroepen van andere methoden
D
Het ophalen van gegevens van een externe bron

Slide 10 - Quizvraag

Deze slide heeft geen instructies

Slide 11 - Link

Deze slide heeft geen instructies

Verwijzen naar properties en methods
Om naar een property of method te verwijzen,
gebruik je de pijl-operator (->).

Slide 12 - Tekstslide

Leg uit hoe je naar properties en methods verwijst.
Voorbeeld: method met parameter
class Auto {
private $merk;
private $model;
public function __construct($merk, $model)
{
$this->merk = $merk;
$this->model = $model;
}
public function getMerk() {
return $this->merk; }
public function getModel() {
return $this->model; }
 public function setMerk($merk) {
 $this->merk = $merk; }
 }
 $auto = new Auto('BMW', 'X5');
 $auto->setMerk('Audi');
echo $auto->getMerk(); // Output: Audi                                                Lees goed hierna komt er een vraag.   


Slide 13 - Tekstslide

Geef een voorbeeld van een method met een parameter en laat zien hoe deze wordt gebruikt.
Wat was de naam van de class in dit voorbeeld?
A
Auto
B
Car
C
Transport
D
Vehicle

Slide 14 - Quizvraag

Deze slide heeft geen instructies

Slide 15 - Link

Deze slide heeft geen instructies

Overerving (Inheritance)
  • Overerving is het principe waarbij een class de eigenschappen en methods van een andere class erft.
  • Een subklasse kan de eigenschappen en methoden van een bovenliggende klasse gebruiken door de 'extends' sleutelwoord te gebruiken.

Voorbeeld:
Stel dat je een klasse 'Dier' hebt met de eigenschappen 'naam' en 'gewicht'. Je kunt dan een subklasse 'Kat' maken die deze eigenschappen erft van 'Dier'.
Lees goed hierna komen er 3 vragen. 



Slide 16 - Tekstslide

Leg uit wat overerving is en waarom het handig is.
Wat is een voorbeeld van overerving?
A
Een subklasse 'Kat' die de eigenschappen 'naam' en 'gewicht' erft van de bovenliggende klasse 'Dier'
B
Een subklasse 'Fiets' die de eigenschappen 'snelheid' en 'kleur' erft van de bovenliggende klasse 'Auto'
C
Een subklasse 'Laptop' die de eigenschappen 'schermgrootte' en 'batterijduur' erft van de bovenliggende klasse 'Smartphone'
D
Een subklasse 'Huisdier' die de eigenschappen 'ras' en 'grootte' erft van de bovenliggende klasse 'Plant'

Slide 17 - Quizvraag

Deze slide heeft geen instructies

Hoe kan een subklasse de eigenschappen en methoden van een bovenliggende klasse gebruiken?
A
Door de 'inherits' sleutelwoord te gebruiken
B
Door de 'inheritsby' sleutelwoord te gebruiken
C
Door de 'extends' sleutelwoord te gebruiken
D
Door de 'inheritsfrom' sleutelwoord te gebruiken

Slide 18 - Quizvraag

Deze slide heeft geen instructies

Wat is overerving ?
A
Een principe waarbij een subklasse unieke eigenschappen en methoden heeft
B
Een principe waarbij een bovenliggende klasse de eigenschappen en methoden van een subklasse erft
C
Een principe waarbij een subklasse de eigenschappen en methoden van een ongerelateerde klasse erft
D
Een principe waarbij een subklasse de eigenschappen en methoden van een bovenliggende klasse erft

Slide 19 - Quizvraag

Deze slide heeft geen instructies

Overerving 2 (Inheritance)
  • Overerving kan handig zijn bij het maken van complexe objecten, omdat het je in staat stelt om code te hergebruiken en te delen tussen verschillende klassen.

  • Voordeel: Overerving kan de code eenvoudiger maken, de leesbaarheid verbeteren en de ontwikkeltijd verkorten doordat dezelfde code niet continu hoeft te worden herschreven.

  • Nadelen: Overerving kan code complex maken en zorgen voor problemen met de class-hierarchie. Ook kan het overmatig gebruik van Overerving code moeilijker te onderhouden maken. Lees goed hierna komt er een vraag. 




Slide 20 - Tekstslide

Leg uit wat overerving is en waarom het handig is.
Waarom is overmatig gebruik van overerving geen goed idee?
A
Het kan de code moeilijker te onderhouden maken
B
Het kan de class-hierarchie verstoren
C
Het kan de ontwikkeltijd verkorten
D
De code kan eenvoudiger worden

Slide 21 - Quizvraag

Deze slide heeft geen instructies

Voorbeeld Overerving (Inheritance)
class Auto {
private $merk;
function __construct($merk) {
$this->merk = $merk;
 }
function getMerk() {
return $this->merk; } }


class Audi extends Auto
 {
 function getModel()
 {
 return 'A4';
 } }


Slide 22 - Tekstslide

Leg uit wat overerving is en waarom het handig is.

Slide 23 - Link

Deze slide heeft geen instructies

Waarom is extends handig?
Extends zorgt ervoor dat je code herbruikbaar en onderhoudbaar blijft. Je kunt bestaande code uitbreiden zonder deze te hoeven herschrijven.

Hierna komt een vraag.

Slide 24 - Tekstslide

Leg uit wat een abstracte class is en waarom het handig is.
Wat is het voordeel van het gebruik van extends in code?
A
Code blijft herbruikbaar en onderhoudbaar
B
Code wordt moeilijker te begrijpen
C
Code wordt complexer
D
Code wordt minder efficiënt

Slide 25 - Quizvraag

Deze slide heeft geen instructies

Abstract class
Een abstracte klasse is een klasse die niet geïnstantieerd kan worden en is bedoeld als basis voor subclasses. De methodes in een abstracte klasse kunnen wel abstract zijn. Deze methodes hebben geen implementatie en moeten dus in de subclass worden geïmplementeerd.
Hierna komt een vraag.

Slide 26 - Tekstslide

Leg uit wat een abstracte class is en waarom het handig is.
Wat is een abstracte klasse?
A
Een klasse die alleen methodes heeft met implementaties.
B
Een klasse die niet kan worden geërfd.
C
Een klasse die geïnstantieerd kan worden en geen basis is voor andere classes.
D
Een klasse die niet geïnstantieerd kan worden en als basis dient voor subclasses.

Slide 27 - Quizvraag

Deze slide heeft geen instructies

Het verschil tussen een interface en een abstracte klasse
Een interface is een contract waaraan de klasse moet voldoen. Een abstracte klasse is een basis waarop subclasses kunnen worden gebouwd. Een klasse kan meerdere interfaces implementeren, maar slechts één abstracte klasse uitbreiden.
Hierna komt een vraag.

Slide 28 - Tekstslide

Leg uit wat een abstracte class is en waarom het handig is.
Wat is het verschil tussen een interface en een abstracte klasse?
A
Een interface kan niet worden geïmplementeerd, een abstracte klasse kan dat wel.
B
Een interface is een basis voor subclasses, een abstracte klasse is een contract.
C
Een interface is een contract, een abstracte klasse is een basis voor subclasses.
D
Een interface kan meerdere keren worden geïmplementeerd, een abstracte klasse slechts één keer.

Slide 29 - Quizvraag

Deze slide heeft geen instructies

Voorbeeld Abstract Class
Een voorbeeld van een abstracte klasse is de 'Animal' klasse. Deze klasse heeft een abstracte methode 'makeSound' die in de subclasses geïmplementeerd moet worden. De 'Animal' klasse kan niet geïnstantieerd worden, maar subclasses zoals de 'Dog' en 'Cat' klasse wel.
Hierna komt een vraag.

Slide 30 - Tekstslide

Leg uit wat een abstracte class is en waarom het handig is.
Wat is een voorbeeld van een abstracte klasse?
A
Cat
B
Dog
C
Animal
D
Bird

Slide 31 - Quizvraag

Deze slide heeft geen instructies

Waarom abstracte klassen gebruiken?
Abstracte klassen zorgen voor een gestructureerde en consistente code. Het is handig om methodes in de abstracte klasse te definiëren die alle subclasses nodig hebben. Dit voorkomt het herhalen van code in de subclasses.

Het verschil tussen een interface en een abstracte klasse is dat een klasse meerdere interfaces kan implementeren, maar slechts één abstracte klasse kan uitbreiden. Hierna komt een vraag.

Slide 32 - Tekstslide

Leg uit wat een abstracte class is en waarom het handig is.
Hoe verschilt een abstracte klasse van een interface?
A
Een klasse kan meerdere interfaces implementeren, maar slechts één abstracte klasse kan uitbreiden.
B
Een interface kan alleen abstracte methoden bevatten, terwijl een abstracte klasse ook concrete methoden kan bevatten.
C
Een klasse kan meerdere abstracte klassen uitbreiden, maar slechts één interface implementeren.
D
Een abstracte klasse moet alle methoden implementeren, terwijl een interface dat niet vereist.

Slide 33 - Quizvraag

Deze slide heeft geen instructies

Interface
Een interface is een set van method signatures. 
Een class die een interface implementeert, moet de method signatures in de interface implementeren.
Hierna komt een vraag.

Slide 34 - Tekstslide

Leg uit wat een interface is en waarom het handig is.
Wat is een interface?
A
Een programmeertaal.
B
Een set van method signatures.
C
Een verzameling van klassen.
D
Een soort van database.

Slide 35 - Quizvraag

Deze slide heeft geen instructies

Voorbeeld: interface
interface Vliegend {
public function opstijgen();
public function landen();
}
class Vogel implements Vliegend {
public function opstijgen()
{
echo 'De vogel stijgt op.';
}
public function landen()
{ echo 'De vogel landt.'; } }
 $vogel = new Vogel(); $vogel->opstijgen(); // Output: De vogel stijgt op.



Slide 36 - Tekstslide

Geef een voorbeeld van een interface en laat zien hoe deze wordt gebruikt.

Slide 37 - Link

Deze slide heeft geen instructies

Static
Een static property of method hoort bij de class in plaats van bij een object. Je kunt ernaar verwijzen zonder een object te instantiëren.
Hierna komt een vraag.

Slide 38 - Tekstslide

Leg uit wat static is en waarom het handig is.
Wat is een static property of method?
A
Een eigenschap of methode die bij de class hoort.
B
Een eigenschap of methode die bij een abstracte klasse hoort.
C
Een eigenschap of methode die bij een interface hoort.
D
Een eigenschap of methode die bij een object hoort.

Slide 39 - Quizvraag

Deze slide heeft geen instructies

Voorbeeld: static
class Auto {
private static $aantalAutos = 0;
public function __construct() {
 self::$aantalAutos++;
 }
public static function getAantalAutos()
 {
 return self::$aantalAutos; } }
 $auto1 = new Auto();
 $auto2 = new Auto();
 echo Auto::getAantalAutos(); // Output: 2




Slide 40 - Tekstslide

Geef een voorbeeld van een static property en method en laat zien hoe deze wordt gebruikt.

Slide 41 - Link

Deze slide heeft geen instructies

Extra oefenvragen
Vraag 1

Wat is object georiënteerd programmeren?

Slide 42 - Tekstslide

Laat de eerste vraag van de quiz zien en leg uit wat het goede antwoord is.
Antwoord vraag 1
Object georiënteerd programmeren is een manier van programmeren waarbij het programma is opgebouwd uit objecten die met elkaar communiceren.

Slide 43 - Tekstslide

Laat het goede antwoord van vraag 1 zien.
Vraag 2
Wat is een class?

Slide 44 - Tekstslide

Laat de tweede vraag van de quiz zien en leg uit wat het goede antwoord is.
Antwoord vraag 2
Een class is een blauwdruk voor een object.

Slide 45 - Tekstslide

Laat het goede antwoord van vraag 2 zien.
Vraag 3
Wat zijn properties?

Slide 46 - Tekstslide

Laat de derde vraag van de quiz zien en leg uit wat het goede antwoord is.
Antwoord vraag 3
Properties zijn variabelen die bij een object horen.

Slide 47 - Tekstslide

Laat het goede antwoord van vraag 3 zien.
Vraag 4
Wat is overerving?

Slide 48 - Tekstslide

Laat de vierde vraag van de quiz zien en leg uit wat het goede antwoord is.
Antwoord vraag 4
Overerving is het principe waarbij een class de eigenschappen en methods van een andere class erft.

Slide 49 - Tekstslide

Laat het goede antwoord van vraag 4 zien.
Vraag 5
Wat is static?

Slide 50 - Tekstslide

Laat de vijfde vraag van de quiz zien en leg uit wat het goede antwoord is.
Antwoord vraag 5
Een static property of method hoort bij de class in plaats van bij een object.

Slide 51 - Tekstslide

Laat het goede antwoord van vraag 5 zien.
Oefening
Schrijf zelf een voorbeeld van OOP in PHP met extends.
Gebruik hierbij een bestaande klasse en voeg hier nieuwe functies en eigenschappen aan toe. Lever de opdracht in bij de Teams-opdracht.

Slide 52 - Tekstslide

Leg uit wat een abstracte class is en waarom het handig is.