Classi e oggetti
Fa parte della sezione Programmazione orientata agli oggetti del percorso PHP di Coddy. Lezione 3 di 91.
Le classi e gli oggetti hanno scopi diversi. Una classe è un modello, mentre un oggetto è ciò che costruisci a partire da quel modello.
Ecco un esempio di classe con proprietà dichiarate:
<?php
class Dog {
public $name;
public $breed;
}La parola chiave public significa che queste proprietà sono accessibili dall'esterno della classe. Impareremo di più su public nella lezione sulle proprietà.
Ora crea oggetti dalla classe Dog:
$dog1 = new Dog();
$dog2 = new Dog();Gli oggetti possono avere valori individuali per le loro proprietà:
$dog1->name = "Nicky";
$dog1->breed = "Siberian Husky";
$dog2->name = "Teemon";
$dog2->breed = "Shu'ali";L'operatore -> viene utilizzato per accedere alle proprietà di un oggetto.
Stampa i dati di ciascun oggetto:
echo $dog1->name . " is a " . $dog1->breed . "\n";
echo $dog2->name . " is a " . $dog2->breed . "\n";Output:
Nicky is a Siberian Husky
Teemon is a Shu'aliDifferenza fondamentale: la classe Dog definisce la struttura condivisa da tutti i cani, mentre gli oggetti $dog1 e $dog2 rappresentano cani specifici e individuali, con valori di proprietà univoci.
Sfida
FacileCompleta il codice per creare due oggetti studente dalla classe Student e impostare le loro proprietà.
student.php: contiene la classeStudent(bloccata)driver.php: crea gli oggetti e imposta le loro proprietà
Imposta i seguenti valori:
$student1: il nome è"Alice"e il voto è"A"$student2: il nome è"Bob"e il voto è"B"
Provalo tu
<?php
require_once 'student.php';
// TODO: Crea due oggetti studente
// TODO: Imposta le proprietà di student1 (name: "Alice", grade: "A")
// TODO: Imposta le proprietà di student2 (name: "Bob", grade: "B")
// Stampa le informazioni sugli studenti
echo $student1->name . " has grade " . $student1->grade . "\n";
echo $student2->name . " has grade " . $student2->grade . "\n";
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Programmazione orientata agli oggetti
1Fondamenti della programmazione orientata agli oggetti
File esterniIntroduzione alla programmazione orientata agli oggettiClassi e oggettiLa parola chiave $thisMetodiProprietàCostruttore (__construct)Distruttore (__destruct)Riepilogo - Calcolatrice semplice4Ereditarietà
Ereditarietà di baseLa parola chiave parent::Sovrascrittura dei metodiLa parola chiave finalClassi astratteRiepilogo - Gerarchia dei dipendenti7Incapsulamento
Pubblico, Protetto, PrivatoApprofondimento sui modificatori di accessoGetter e SetterOccultamento delle informazioniPromozione dei parametri del costruttore (8.0)Riepilogo - Sistema di gestione dei registri degli studenti10Concetti avanzati di programmazione a oggetti
Composizione vs ereditarietàDependency InjectionClassi anonimeEnumerazioni (PHP 8.1)Fibers (PHP 8.1)Approfondimento sulla clonazione degli oggettiGeneratori e iteratori13Modelli di progettazione, parte 2
Modello CommandModello AdapterModello DecoratorModello Template MethodModello StateModello CompositeModello Repository2Namespace e autoloading
Introduzione ai namespaceLa keyword useStandard di autoloading PSR-4Autoloader di ComposerRiepilogo - Progetto organizzato5Interfacce e contratti
Introduzione alle interfacceImplementare le interfacceImplementare più interfacceInterfaccia vs classe astrattaType hinting con le interfacceRiepilogo - Calcolatore di forme8Metodi magici
Introduzione ai metodi magici__toString e __debugInfo__get, __set, __isset, __unset__call e __callStatic__clone e clonazione degli oggetti__serialize e __unserializeRiepilogo - Collezione personalizzata11Sistema dei tipi e gestione degli errori
Dichiarazioni di tipoTipi nullableTipi unione e intersezioneClassi di eccezioneGerarchia di eccezioni personalizzataTry, Catch, FinallyRiepilogo - Validatore di moduli14Progetto: Gestione della biblioteca
Panoramica del progettoClassi Libro e Utente3Proprietà delle classi
Proprietà di istanza e staticheCostanti nelle classiMetodi e proprietà staticiProprietà private e protectedProprietà readonly (PHP 8.1)Riepilogo - Gestore di conti bancari6Polimorfismo
Ridefinizione dei metodi, ripresaPolimorfismo tramite interfacceSuggerimenti sui tipi e tipi UnionBinding statico tardivoRiepilogo - Processore di pagamenti9Tratti
Introduzione ai trattiUtilizzare più trattiRisoluzione dei conflitti tra trattiMetodi astratti nei trattiTratti vs ereditarietà12Design pattern - Parte 1
Introduzione ai design patternPattern SingletonPattern FactoryPattern ObserverPattern StrategyEsercitati da solo: Compilatore PHP online