Meine erste Klasse und schon Probleme

Also die Klassenvariablen haben schon einen Sinn: sie sind der 'globale' (für die gesamte Klasse geltende) Informationsspeicher, während innerhalb der Methoden lokale Variablen deklariert werden. Da man mit der return Anweisung nur eine Variable zurückgeben kann, kann man so die Ergebnisse von Berechnungen der ganzen Klasse zur Verfügung stellen.

Konstruktoren kann man zum Anlegen von Startwerten verwenden. Wenn man möchte, dass eine gewisse Klassenvariable per Default schon Werte zugewiesen bekommt, kann man das da machen. Ausserdem kann man ja einem Konstruktor auch Parameter übergeben.

ein Beispiel:
PHP:
<?php
class Test {
   function Test($startwert1, $startwert2) {
      $this->wert1 = $startwert1;
      $this->wert2 = $startwert2;
   }
}

$myTest = new Test("1", "2");
?>
Was ich aber noch wichtiger finde, ist dass man das ganze überschreiben kann. Ich habe zum Beispiel eine Tabelle, in der Rubriken gespeichert werden. Jede Rubrik kann wieder Töchter haben usw. Meine Klasse nimmt nun alle Datensätze und geht sie durch, stellt eine Hierarchie auf und mit speziellen Methoden kann man dann den HierarchieBaum darstellen.
Nun lege ich in einem sehr einfachen Konstruktor fest, dass die Einrückungstiefe pro Hierarchielevel ein paar Pixel beträgt. Wenn ich das aber in einer anderen Situation nicht mehr so haben will, kann ich die Klasse ableiten, einen neuen Konstruktor hinzufügen und alles arbeitet mit der neuen Einrückungstiefe, ohne auch nur einmal die Basisklasse verändert zu haben. Im Beispiel könnte das so aussehen:

PHP:
<?php
class Test2 extends Test {
   function Test($startwert1, $startwert2) {
      $this->wert1 = $startwert1;
      $this->wert2 = $startwert2 * 2;
   }
}

$myTest = new Test2("1", "2");
?>

Wie gesagt: Konstruktoren sind zum setzen von Startwerten da.

Mit Krause und OOP hast du recht, daher hab ich den Dreh erst bei der Java Programmierung gefunden. Aber mittlerweile möchte ich es in bestimmten Situationen nicht mehr missen.

Ciao, F.o.G.
 
@F.o.G.

Lob, Lob, rechtslinksschulterklopf&haendeschuettel

Super, so habe ich noch nie die Gundzüge der OOP
erklärt gesehen.

Schreibe doch mal ein Tut über dieses Thema. Ich habe
erst seit kurzer Zeit mit PHP begonnen und vorher nur
so ein bisschen Rumprogrammiert im Web.

Habe mir erlaubt, dich dafür per Bewertung zu loben

So weiss ich, wie schwer es ist, die Sache richtig unter
einen Hut zu bekommen.

Frage, seit wann progst du schon mit PHP?


Gruss
Peter
 
Zurück