Objektorientierte Programmierung: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 65: Zeile 65:
 
=== Methoden überschreiben ===
 
=== Methoden überschreiben ===
 
'''Beispiel PHP'''
 
'''Beispiel PHP'''
 
+
<pre>
 
class Ship{
 
class Ship{
 
   $engineStatus = 'OFF';
 
   $engineStatus = 'OFF';
Zeile 80: Zeile 80:
 
   }
 
   }
 
}
 
}
 +
</pre>

Version vom 1. Oktober 2014, 08:58 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';
    $this->additionalEngineStatus = 'ON';
  }
}