Klassen vs. Objekte
Teil des Abschnitts Objektorientierte Programmierung der PHP-Journey von Coddy. Lektion 3 von 91.
Klassen und Objekte dienen unterschiedlichen Zwecken. Eine Klasse ist ein Bauplan, während ein Objekt das ist, was Sie aus diesem Bauplan erstellen.
Hier ist ein Beispiel für eine Klasse mit deklarierten Eigenschaften:
<?php
class Dog {
public $name;
public $breed;
}Das Schlüsselwort public bedeutet, dass auf diese Eigenschaften von außerhalb der Klasse zugegriffen werden kann. Wir werden in der Lektion über Eigenschaften mehr über public erfahren.
Erstellen Sie nun Objekte aus der Klasse Dog:
$dog1 = new Dog();
$dog2 = new Dog();Objekte können individuelle Werte für ihre Eigenschaften haben:
$dog1->name = "Nicky";
$dog1->breed = "Siberian Husky";
$dog2->name = "Teemon";
$dog2->breed = "Shu'ali";Der -> Operator wird verwendet, um auf die Eigenschaften eines Objekts zuzugreifen.
Geben Sie die Daten jedes Objekts aus:
echo $dog1->name . " is a " . $dog1->breed . "\n";
echo $dog2->name . " is a " . $dog2->breed . "\n";Ausgabe:
Nicky is a Siberian Husky
Teemon is a Shu'aliHauptunterschied: Die Klasse Dog definiert die Struktur, die alle Hunde teilen, während die Objekte $dog1 und $dog2 spezifische, individuelle Hunde mit einzigartigen Eigenschaftswerten darstellen.
Aufgabe
EinfachVervollständigen Sie den Code, um zwei Studenten-Objekte aus der Klasse Student zu erstellen und deren Eigenschaften festzulegen.
student.php: Enthält die KlasseStudent(gesperrt)driver.php: Erstellen Sie Objekte und legen Sie deren Eigenschaften fest
Legen Sie die folgenden Werte fest:
$student1: name ist"Alice"mit der Note"A"$student2: name ist"Bob"mit der Note"B"
Probier es selbst
<?php
require_once 'student.php';
// TODO: Erstelle zwei Studenten-Objekte
// TODO: Eigenschaften für student1 festlegen (Name: "Alice", Note: "A")
// TODO: Eigenschaften für student2 festlegen (Name: "Bob", Note: "B")
// Studenteninformationen ausgeben
echo $student1->name . " has grade " . $student1->grade . "\n";
echo $student2->name . " has grade " . $student2->grade . "\n";
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienEinführung in OOPKlassen vs. ObjekteDas Schlüsselwort $thisMethodenEigenschaftenKonstruktor (__construct)Destruktor (__destruct)Rückblick – Einfacher Taschenrechner4Vererbung
Grundlegende VererbungDas Schlüsselwort parent::MethodenüberschreibungDas Schlüsselwort finalAbstrakte KlassenRückblick – Mitarbeiterhierarchie7Kapselung
Öffentlich, geschützt, privatZugriffsmodifikatoren im DetailGetter und SetterInformationsverbergungKonstruktor-Promotion (8.0)Wiederholung – System zur Verwaltung von Schülerdatensätzen2Namespaces & Autoloading
Einführung in NamespacesDas use-SchlüsselwortPSR-4-Autoloading-StandardComposer-AutoloaderRückblick – Organisiertes Projekt5Schnittstellen & Verträge
Einführung in SchnittstellenSchnittstellen implementierenMehrere Schnittstellen implementierenSchnittstelle vs. abstrakte KlasseTyp-Hinweise mit SchnittstellenRückblick – Formrechner8Magische Methoden
Einführung in magische Methoden__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Objektklonen__serialize & __unserializeRückblick – Benutzerdefinierte Sammlung11Typsystem & Fehlerbehandlung
TypdeklarationenNullable-TypenUnion- & Intersection-TypenException-KlassenBenutzerdefinierte Exception-HierarchieTry, Catch, FinallyRückblick – Formularvalidator14Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen3Klassen-Eigenschaften
Instanz- vs. statische EigenschaftenKonstanten in KlassenStatische Methoden & EigenschaftenPrivate & geschützte EigenschaftenSchreibgeschützte Eigenschaften (PHP 8.1)Zusammenfassung – Bankkonto-Manager6Polymorphie
Methodenüberschreibung erneut betrachtetPolymorphie über SchnittstellenTyp-Hinweise & Union-TypenSpätes statisches BindenRückblick – Zahlungsabwickler9Traits
Einführung in TraitsMehrere Traits verwendenAuflösung von Trait-KonfliktenAbstrakte Methoden in TraitsTraits vs. Vererbung12Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster15Abschließende Herausforderungen
E-Learning-PlattformBankingsystemEntwicklung einer SpielfigurFahrzeugvermietungÜbe selbstständig: Online-PHP-Compiler