Objektorientierte Programmierung in PHP
Konzepte der objektorientierten Programmierung
Die objektorientierte Programmierung (OOP) ist ein Programmierparadigma, das "Objekte" zur Gestaltung von Anwendungen und Software verwendet. Diese Objekte sind Instanzen von Klassen, die Daten in Form von Feldern enthalten, die auch als Attribute bezeichnet werden, und Code in Form von Verfahren, die auch als Methoden bezeichnet werden. Die Haupt原则 der OOP sind Kapselung, Vererbung und Polymorphie.
Definition von PHP-Klassen
In PHP definieren Sie eine Klasse mit dem Schlüsselwort class
. Eine Klasse ist ein.Blueprint für die Erstellung von Objekten. Sie definiert einen Satz von Eigenschaften und Methoden, die für alle Objekte eines Typs gemeinsam sind.
class Auto {
// Klassen-Eigenschaften und -Methoden hier
}
Erstellung von Objekten in PHP
Um ein Objekt aus einer Klasse zu erstellen, verwenden Sie das Schlüsselwort new
gefolgt vom Klassennamen.
$meinAuto = new Auto();
Aufruf von Member-Funktionen
Member-Funktionen werden innerhalb einer Klasse definiert und werden verwendet, um Operationen auf die Eigenschaften des Objekts auszuführen. Sie rufen eine Member-Funktion auf einem Objekt mit dem Objektorperator ->
auf.
$meinAuto->fahren(); // Ruft die Methode fahren auf dem Objekt $meinAuto auf
Konstruktoren
Ein Konstruktor ist eine spezielle Methode, die automatisch aufgerufen wird, wenn ein Objekt aus einer Klasse erstellt wird. Er wird verwendet, um die Eigenschaften des Objekts zu initialisieren.
class Auto {
public function __construct() {
// Eigenschaften hier initialisieren
}
}
Destruktor
Ein Destruktor ist eine spezielle Methode, die automatisch aufgerufen wird, wenn ein Objekt zerstört oder aus dem Gültigkeitsbereich geht. Er wird verwendet, um Aufräumarbeiten wie das Schließen von Datenbankverbindungen oder das Freigeben von Speicher durchzuführen.
class Auto {
public function __destruct() {
// Aufräumarbeiten hier durchführen
}
}
Vererbung
Vererbung ermöglicht es einer Klasse, Eigenschaften und Methoden von einer anderen Klasse zu erben. Die Klasse, von der geerbt wird, wird als Elternklasse bezeichnet, und die Klasse, die erbekommt, wird als Kindklasse bezeichnet.
class Elektroauto extends Auto {
// Elektroauto erbt Eigenschaften und Methoden von Auto
}
Methoden-Überschreibung
Methoden-Überschreibung ermöglicht es einer Kindklasse, eine andere Implementierung einer Methode bereitzustellen, die bereits in ihrer Elternklasse definiert ist.
class Elektroauto extends Auto {
public function fahren() {
// Andere Implementierung der fahrmethode
}
}
Öffentliche Mitglieder
Öffentliche Mitglieder sind von überall zugänglich, sowohl innerhalb als auch außerhalb der Klasse.
class Auto {
public $farbe; // Öffentliche Eigenschaft
public function fahren() { // Öffentliche Methode
// Code hier
}
}
Private Mitglieder
Private Mitglieder sind nur innerhalb der Klasse, in der sie definiert sind, zugänglich. Sie können nicht von außerhalb der Klasse aufgerufen werden.
class Auto {
private $farbe; // Private Eigenschaft
private function fahren() { // Private Methode
// Code hier
}
}
Geschützte Mitglieder
Geschützte Mitglieder sind innerhalb der Klasse, in der sie definiert sind, und innerhalb jeder Unterklasse zugänglich.
class Auto {
protected $farbe; // Geschützte Eigenschaft
protected function fahren() { // Geschützte Methode
// Code hier
}
}
Schnittstellen
Eine Schnittstelle ist ein Vertrag, der einen Satz von Methoden definiert, die eine Klasse implementieren muss. Wenn eine Klasse eine Schnittstelle implementiert, verspricht sie, eine Implementierung für alle in der Schnittstelle erklärten Methoden bereitzustellen.
interface Fahrbare {
public function fahren(); // Methoden.deklaration
}
class Auto implements Fahrbare {
public function fahren() {
// Implementierung der fahrmethode
}
}
Konstanten
Konstanten sind benannte Werte, die einmal definiert nicht mehr geändert werden können. Sie sind nützlich zum Definieren von Werten, die während der Ausführung des Programms nicht geändert werden sollten.
class Auto {
const MAX_GESCHWINDIGKEIT = 100; // Konstanter Wert
}
Abstrakte Klassen
Eine abstrakte Klasse ist eine Klasse, die nicht instanziert werden kann und zur Vererbung durch andere Klassen gedacht ist. Sie kann abstrakte Methoden enthalten, die Methoden ohne Implementierung sind, und konkrete Methoden mit Implementierung.
abstract class Fahrzeug {
abstract public function bewegen(); // Abstrakte Methode
public function stoppen() { // Konkrete Methode
// Code hier
}
}
Statisches Schlüsselwort
Das statische Schlüsselwort wird verwendet, um Eigenschaften oder Methoden als Bestandteil der Klasse selbst而不是 einer Instanz der Klasse zu deklarieren. Statische Mitglieder können ohne Erstellung eines Objekts der Klasse aufgerufen werden.
class Auto {
public static $anzahl = 0; // Statische Eigenschaft
public static function getAnzahl() { // Statische Methode
return self::$anzahl;
}
}
Finale Schlüsselwort
Das finale Schlüsselwort wird verwendet, um zu verhindern, dass eine Klasse erweitert oder eine Methode überschrieben wird.
final class Auto {
// Diese Klasse kann nicht erweitert werden
}
Aufruf von Elternkonstruktoren
Wenn Sie eine Kindklasse erstellen, möchten Sie möglicherweise den Konstruktor der Elternklasse aufrufen, um einige ihrer Eigenschaften zu initialisieren. Dies können Sie tun, indem Sie das Schlüsselwort parent
gefolgt vom ::
Operator und dem Namen des Konstruktors verwenden.
class Elektroauto extends Auto {
public function __construct() {
parent::__construct(); // Aufruf des Elternkonstruktors
// Zusätzliche Initialisierung hier
}
}
Credits: Image by storyset