Objektorientierte Programmierung: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
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';
  }
}