Objektorientierte Programmierung: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 75: Zeile 75:
 
class Luxusliner extends Ship{
 
class Luxusliner extends Ship{
 
   additionalEngineStatus = 'OFF';
 
   additionalEngineStatus = 'OFF';
   function startEngine(){
+
   function startEngine(){ // Gibt es schon -> wird überschrieben...
 
     $this->engineStatus = 'ON'; // Doppelt gemoppelt -> nicht praktisch. Besser siehe unten.
 
     $this->engineStatus = 'ON'; // Doppelt gemoppelt -> nicht praktisch. Besser siehe unten.
 
     $this->additionalEngineStatus = 'ON';
 
     $this->additionalEngineStatus = 'ON';
Zeile 81: Zeile 81:
 
}
 
}
 
</pre>
 
</pre>
 +
 
=== Zugriff auf Methode der Elternklasse ===
 
=== Zugriff auf Methode der Elternklasse ===
 
Manchmal ist es besser, mit Hilfe von ''parent'',  die Methoden der Elternklasse zu nutzen.
 
Manchmal ist es besser, mit Hilfe von ''parent'',  die Methoden der Elternklasse zu nutzen.

Version vom 1. Oktober 2014, 09:03 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(){ // Gibt es schon -> wird überschrieben...
    $this->engineStatus = 'ON'; // Doppelt gemoppelt -> nicht praktisch. Besser siehe unten.
    $this->additionalEngineStatus = 'ON';
  }
}

Zugriff auf Methode der Elternklasse

Manchmal ist es besser, mit Hilfe von parent, 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';
  }
}