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"
Spickzettel
Eine Klasse ist ein Bauplan, der die Struktur und das Verhalten von Objekten definiert, während ein Objekt eine Instanz ist, die aus dieser Klasse erstellt wurde.
Definieren Sie eine Klasse mit Eigenschaften unter Verwendung des Schlüsselworts public:
<?php
class Dog {
public $name;
public $breed;
}Erstellen Sie Objekte aus einer Klasse unter Verwendung des Schlüsselworts new:
$dog1 = new Dog();
$dog2 = new Dog();Greifen Sie auf Objekteigenschaften zu und legen Sie diese fest, indem Sie den Operator -> verwenden:
$dog1->name = "Nicky";
$dog1->breed = "Siberian Husky";
$dog2->name = "Teemon";
$dog2->breed = "Shu'ali";Greifen Sie auf Eigenschaften zu, um deren Werte zu lesen:
echo $dog1->name . " is a " . $dog1->breed;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 die OOPKlassen vs. ObjekteDas $this-SchlüsselwortMethodenEigenschaftenKonstruktor (__construct)Destruktor (__destruct)Rückblick - Einfacher Taschenrechner4Vererbung
Grundlagen der VererbungDas parent:: SchlüsselwortMethoden überschreibenDas final SchlüsselwortAbstrakte KlassenZusammenfassung – Mitarbeiter-Hierarchie7Kapselung
Public, Protected, PrivateZugriffsmodifikatoren im DetailGetter und SetterInformation HidingConstructor Promotion (8.0)Zusammenfassung – Studentenverwaltungssystem2Namensräume & Autoloading
Einführung in NamensräumeDas use-SchlüsselwortPSR-4 Autoloading-StandardComposer AutoloaderZusammenfassung – Organisiertes Projekt5Interfaces & Verträge
Einführung in InterfacesInterfaces implementierenMehrfache Interface-ImplementierungInterface vs. Abstrakte KlasseType Hinting mit InterfacesZusammenfassung – Formen-Rechner8Magische Methoden
Einführung in magische Methoden__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Objekt-Klonen__serialize & __unserializeZusammenfassung - Eigene Collection11Typsystem & Fehlerbehandlung
TypdeklarationenNullable-TypenUnion- & Intersection-TypenException-KlassenEigene Exception-HierarchieTry, Catch, FinallyZusammenfassung - Formular-Validator14Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen3Klasseneigenschaften
Instanz- vs. statische EigenschaftenKonstanten in KlassenStatische Methoden & EigenschaftenPrivate & geschützte EigenschaftenReadonly-Eigenschaften (PHP 8.1)Zusammenfassung – Bankkonto-Manager6Polymorphismus
Method Overriding erneut betrachtetPolymorphismus über InterfacesType Hinting & Union TypesLate Static BindingZusammenfassung – Payment Processor9Traits
Einführung in TraitsVerwendung mehrerer TraitsKonfliktlösung bei TraitsAbstrakte Methoden in TraitsTraits vs. Vererbung12Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster15Abschlussherausforderungen
E-Learning-PlattformBanksystemSpielcharakter-EntwicklungFahrzeugvermietung