Objektorientierung: Unterschied zwischen den Versionen

Aus m-wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Objektdaten = Eigenschaften, Werte oder Properties (Objekteigenschaft)\ Objektmethoden = Funktionen\ \ - Klassen werden vor der Verwendung erstellt und m…“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Objektdaten = Eigenschaften, Werte oder Properties (Objekteigenschaft)\
Objektdaten = Eigenschaften, Werte oder Properties (Objekteigenschaft)\
  Objektmethoden = Funktionen\
Objektmethoden = Funktionen\
  \
 
  - Klassen werden vor der Verwendung erstellt und mit include eingebunden.\
- Klassen werden vor der Verwendung erstellt und mit include eingebunden.\
  \
- Da in den Funktionen der Klasse nur lokale oder per Parameter übergebene Variablen bekannt sind, müssen auch klasseninterne Variablen mit $this->variable angesprochen werden.
  - Da in den Funktionen der Klasse nur lokale oder per Parameter übergebene Variablen bekannt sind, \
 
    müssen auch klasseninterne Variablen mit $this->variable angesprochen werden. \
  \
   Klasse -> Objekt:\
   Klasse -> Objekt:\
   class Rechteck {\
   class Rechteck {\
Zeile 22: Zeile 20:
   echo $testRechteck->Fläche(); // ergibt 20\
   echo $testRechteck->Fläche(); // ergibt 20\
   \
   \
  <?php
    class KlassenName {
    // ...
  } // end KlassenName
  ?>
   Vererbung:\
   Vererbung:\
   class Quader extends Rechteck {\
   class Quader extends Rechteck {\

Version vom 20. April 2019, 08:09 Uhr

Objektdaten = Eigenschaften, Werte oder Properties (Objekteigenschaft)\ Objektmethoden = Funktionen\

- Klassen werden vor der Verwendung erstellt und mit include eingebunden.\ - Da in den Funktionen der Klasse nur lokale oder per Parameter übergebene Variablen bekannt sind, müssen auch klasseninterne Variablen mit $this->variable angesprochen werden.

 Klasse -> Objekt:\
 class Rechteck {\
   var Länge;\
   var Breite;\
   \
   function Fläche () {\
     return $this->Länge * $this->Breite;\
   } // end function Fläche\
 } // end class Rechteck\
 \
 $testRechteck = new Rechteck;\
 $testRechteck->Länge = 5;\
 $testRechteck->Breite = 4;\
 echo $testRechteck->Fläche(); // ergibt 20\
 \
 <?php
   class KlassenName {
    // ...
 } // end KlassenName 
 ?>
 Vererbung:\
 class Quader extends Rechteck {\
   var Höhe;\
   \
   function Volumen () {\
     return $this->Höhe*Fläche();\
   } // end function Volumen\
 } // end class Quader\
 \
 Alle Funktionen und Werte werden vererbt und stehen zur Verfügung\
 \
 $testQuader = new Quader;\
 $testQuader->Länge = 7;\
 $testQuader->Breite = 3;\
 $testQuader->Höhe = 5;\
 echo $testQuader->Volumen(); // ergibt 105\
 \
 Konstruktor:\
 Funktion, welche beim Erstellen aufgerufen wird. Kann aber auch ganz normal aufgerufen werden.\
 Name entspricht Klasse. Wird nach der Variablendefinition definiert, damit man diese Variablen\
 auch gleich initialisieren kann.\
 Will man in einer vererbten Klasse auch noch den Konstruktor der Oberklasse aufrufen, so geht dies\
 mit $this->Oberkonstruktor(). Wird nicht aut. gemacht, da meist nicht nötig.\
 \
 class test {\
   var $miau;\
   \
   function test() {\
     $this->miau = true;\
   } // end function test\
 } // end class test\
 \
 Will man gleich Werte von ausserhalb übernehmen und testen im Konstruktor...\
   var $x_ok;\
   var $y_ok;\
   \
   function test ($x = "", $y = "") {\
     $this->testVar($x);\
     $this->testVar($y);\
   } // end function test\
   \
   function testVar($testvariable) {\
     if ($testvariable == "muh") { $this->x_ok = $testvariable }\
   } // end function testVar\
   \
   Falls die Methode mehrere unterschiedliche Variablen prüft, muss man halt mit einem Rückgabewert arbeiten und nicht direkt setzen.\
   \
   $x_ok = $this->testVar($x);\
       \
   function testVar($testvariable) {\
     if ($testvariable == "muh") { \
       return $testvariable \
     }\
     else {\
       return "";\
     }\
   } // end function testVar\
   \
   Mit Werten wird das Objekt folgendermassen erzeugt:\
   \
   $objekt = new Objekt("muh", "miau");\
   $objekt2 = new Objekt("muh"); // Da die Parameter mit = "" drin sind, wird der zusätzliche Wert standardmässig gesetzt.\
   \
   \
 Objekte kopieren / referenzieren:\
 Beim zuweisen an ein neues Objekt $new = $old werden sämtliche Werte kopiert.\
 Will man eine Referenz, so wird mit & zugewiesen: $new = &$old -> beide verweisen auf das gleiche Objekt.