Objektorientierte Programmierung: Unterschied zwischen den Versionen
Aus Wikizone
| Zeile 76: | Zeile 76: | ||
additionalEngineStatus = 'OFF'; | additionalEngineStatus = 'OFF'; | ||
function startEngine(){ | function startEngine(){ | ||
| − | $this->engineStatus = 'ON'; | + | $this->engineStatus = 'ON'; // Doppelt gemoppelt -> nicht praktisch. Besser siehe unten. |
| + | $this->additionalEngineStatus = 'ON'; | ||
| + | } | ||
| + | } | ||
| + | </pre> | ||
| + | === Zugriff auf Methode der Elternklasse === | ||
| + | Manchmal ist es besser die Methoden der Elternklasse zu nutzen. | ||
| + | |||
| + | '''Beispiel PHP''' | ||
| + | |||
| + | <pre> | ||
| + | class Luxusliner extends Ship{ | ||
| + | additionalEngineStatus = 'OFF'; | ||
| + | function startEngine(){ | ||
| + | parent::startEngine(); // Besser -> passt sich an wenn Elternklasse geändert wird. | ||
$this->additionalEngineStatus = 'ON'; | $this->additionalEngineStatus = 'ON'; | ||
} | } | ||
} | } | ||
</pre> | </pre> | ||
Version vom 1. Oktober 2014, 09:02 Uhr
Diese Seite enthält eine kurze Einführung in wichtige Begrifflichkeiten und Modelle.
Klassen und Objekte
Beispiel PHP
class Ship{
public $name;
public $speed;
function startEngine() {
$this->speed=200; // this kann auf Eigenschaften und Methoden innerhalb der Klasse zugreifen.
}
function moveTo($location) {}
}
$fidelio = new Ship();
$fidelio->name = "FIDELIO";
$fidelio->startEngine();
$fidelio->moveTo("Bahamas");
var_dump($fidelio);
Konstruktor
Unterscheidet sich ziemlich in div. Programmiersprachen. Funktion ist aber gleich: Der Konstruktor wird beim erstellen einer Objektinstanz aufgerufen und kann zum initialisieren dienen.
Beispiel PHP
In PHP wird falls vorhanden die Funktion __construct() aufgerufen.
class Ship{
public $name;
public $coaches;
public $speed;
...
function __constuct($name, $numberOfCoaches) {
$this->name = $name;
$this->coaches = $numberOfCoaches;
echo("Das Schiff heißt: " . $this->name . " und besitzt " . $this->coaches . " Kabinen.");
}
...
}
$fidelio = new Ship("Fidelio",125);
Vererbung
Eine Klasse kann ihre Eigenschaften und Methoden an eine neue Klasse vererben. Die neue Klasse kann erweitert werden.
Beispiel PHP
class Luxusliner extends Ship {
public $luxuryCoaches;
function golfSimulatorStart(){
echo "Golfsimulator gestartet";
}
}
$maryqueen = new Luxusliner("Mary Queen",650);
Methoden und Eigenschaften
Methoden überschreiben
Beispiel PHP
class Ship{
$engineStatus = 'OFF';
function startEngine(){
$this->engineStatus = 'ON';
}
}
class Luxusliner extends Ship{
additionalEngineStatus = 'OFF';
function startEngine(){
$this->engineStatus = 'ON'; // Doppelt gemoppelt -> nicht praktisch. Besser siehe unten.
$this->additionalEngineStatus = 'ON';
}
}
Zugriff auf Methode der Elternklasse
Manchmal ist es besser die Methoden der Elternklasse zu nutzen.
Beispiel PHP
class Luxusliner extends Ship{
additionalEngineStatus = 'OFF';
function startEngine(){
parent::startEngine(); // Besser -> passt sich an wenn Elternklasse geändert wird.
$this->additionalEngineStatus = 'ON';
}
}