[oop.wirlernen.at] [Aufgaben zur Lektion] [Video zur Lektion]

Lektion 2: Objektorientierte Programmierung (OOP) mit PHP

In dieser Lektion werden die Art der imperativen Programmierung und der objektorientierten Programmierung einander gegenüber gestellt.

Imperative Programmierung

Hier unten siehst du im 1. Listing ein Beispiel für die so genannte Imperativen Programmierung.
In der Regel werden hier die Anweisungen / Befehle in der Reihenfolge ausgeführt in der diese in den Editor eingeben werden - ein Programm fängt also oben an und hört unten auf.
Der Code von imperativ.php
(Code OHNE Zeilennummern)
01 | <?php 
02 |
//Beispiel imperativer Programmierung
03 | //das Listing wird von oben nach unten abgearbeitet
04 |     
echo "Hallo Welt!<br>";
05 |     echo 
"Morgen<br>";
06 |     echo 
"wird ";
07 |     echo 
"es sicher wieder<br>";
08 |     echo 
"so schön ";
09 |     echo 
"wie heute<br>";
10 |  
?>

Objektorientierte Programmierung

Im folgenden Listing wird eine Klasse vom Typ Katze erzeugt. Jedes Objekt der Klasse Katze hat bestimmte Eigenschaften. Eine Erläuterung des Listings findest du unmittelbar nach dem PHP - Quelltext
Der Code von oop_katze.php
(Code OHNE Zeilennummern)
01 | <?php
02 |
class Katze {  
03 |
//Variablen mit private nur innerhalb der Klasse verf&uuml;gbar
04 |     
private $futterart=''
05 |     private 
$mengeinkg=0;
06 |     private 
$name='';
07 |
//Variablen mit public auch au&szlig;erhalb der Klasse verf&uuml;gbar
08 |     
public $anzahlpfoten=4;
09 |     
10 |     function 
fuettern ($welchesfutter,$wievielfutter){
11 |         
$this->futterart $welchesfutter
12 |         
$this->mengeinkg $wievielfutter;    
13 |     }
14 |     function 
wievielgeradegefressen(){
15 |         echo 
"die Katze hat gerade $this->mengeinkg KG $this->futterart gefressen<br>";
16 |     }
17 |     function 
benennen ($neuerName){
18 |         
$this->name $neuerName;    
19 |     }
20 |     function 
namenennen (){
21 |     echo 
"Der Name der Katze lautet: $this->name<br>";
22 |     }
23 | }
24 |     
$abessinier = new Katze ();
25 |     
$abessinier->fuettern('Fleisch',2);
26 |     
$abessinier->wievielgeradegefressen();
27 |     
$abessinier->benennen("Mauzi");
28 |     
$abessinier->namenennen();
29 |     
$balinese = new Katze ();
30 |     
$balinese->fuettern('Fisch',1);
31 |     
$balinese->wievielgeradegefressen();
32 |     
$balinese->benennen("Pezi");
33 |     
$balinese->namenennen();
34 |     
//Der Wert der Variablen anzahlpfoten des Objekts abessinier wird
35 |     //ausgegeben. Die Variable wurde in der Klasse als public festgelegt 
36 |     
echo "Anzahl der Pfoten: ".$abessinier->anzahlpfoten;
37 |
?>






Augabenstellung:
1. Mit welchem Schlüsselwort beginnt in PHP eine Klassendefinition? Was sollte in diesem Zusammenhang bei der Schreibweise beachtet werden?
2. Womit wird das Ende einer Klassendefinition in PHP gekennzeichnet?
3. Wo werden meistens im Listing einer Klassendefinition die Attribute einer Klasse festgelegt? Welche Bedeutung hat in diesem Zusammenhang die Anweisung private?
4. Welches Schlüsselwort wird in PHP verwendet um eine Methode zu erzeugen? Womit wird im Listing das Ende einer Festlegung einer Methode gekennzeichnet?
5. Welche Bedeutung hat das Schlüsselwort $this innerhalb einer Methode?
6. Wie wird eine neues Objekt einer Klasse in PHP erzeugt?
7. Worin bestehen Vorteile einer OOP Programmierung im Gegensatz zur prozeduralen Art zu Programmieren?
8. fertige jetzt ein php programm in einer Datei mit dem Dateinamen auto.php - mit Hilfe von OOP - welches ein Auto nachbilden soll!
* Du sollst also eine class auto mit dazu gehörenden functions erzeugen!
* Dein PHP - Programm muss zumindest 5 functions und eine class beinhalten!
* Es sollen zumindest 3 Objekte der von dir erzeugten class erzeugt werden!
* Es müssen die functions von jedem Objekt zumindest einmal aufgerufen werden!