Classes vs Objets
Fait partie de la section Programmation Orientée Objet du Journey PHP de Coddy — leçon 3 sur 91.
Les classes et les objets servent des objectifs différents. Une classe est un plan, tandis qu'un objet est ce que vous construisez à partir de ce plan.
Voici un exemple d'une classe avec des propriétés déclarées :
<?php
class Dog {
public $name;
public $breed;
}Le mot-clé public signifie que ces propriétés peuvent être accédées depuis l'extérieur de la classe. Nous en apprendrons davantage sur public dans la leçon sur les Propriétés.
Maintenant, créez des objets à partir de la classe Dog :
$dog1 = new Dog();
$dog2 = new Dog();Les objets peuvent avoir des valeurs individuelles pour leurs propriétés :
$dog1->name = "Nicky";
$dog1->breed = "Siberian Husky";
$dog2->name = "Teemon";
$dog2->breed = "Shu'ali";L'opérateur -> est utilisé pour accéder aux propriétés d'un objet.
Affichez les données de chaque objet :
echo $dog1->name . " is a " . $dog1->breed . "\n";
echo $dog2->name . " is a " . $dog2->breed . "\n";Sortie :
Nicky is a Siberian Husky
Teemon is a Shu'aliDifférence clé : La classe Dog définit la structure que tous les chiens partagent, tandis que les objets $dog1 and $dog2 représentent des chiens spécifiques et individuels avec des valeurs de propriété uniques.
Défi
FacileComplétez le code pour créer deux objets étudiants à partir de la classe Student et définir leurs propriétés.
student.php: Contient la classeStudent(verrouillé)driver.php: Créez les objets et définissez leurs propriétés
Définissez les valeurs suivantes :
$student1: le nom est"Alice"avec la note"A"$student2: le nom est"Bob"avec la note"B"
Aide-mémoire
Une classe est un plan qui définit la structure et le comportement des objets, tandis qu'un objet est une instance créée à partir de cette classe.
Définissez une classe avec des propriétés en utilisant le mot-clé public :
<?php
class Dog {
public $name;
public $breed;
}Créez des objets à partir d'une classe en utilisant le mot-clé new :
$dog1 = new Dog();
$dog2 = new Dog();Accédez aux propriétés de l'objet et définissez-les en utilisant l'opérateur -> :
$dog1->name = "Nicky";
$dog1->breed = "Siberian Husky";
$dog2->name = "Teemon";
$dog2->breed = "Shu'ali";Accédez aux propriétés pour lire leurs valeurs :
echo $dog1->name . " is a " . $dog1->breed;Essayez vous-même
<?php
require_once 'student.php';
// TODO: Créer deux objets étudiants
// TODO: Définir les propriétés pour student1 (nom : "Alice", note : "A")
// TODO: Définir les propriétés pour student2 (nom : "Bob", note : "B")
// Afficher les informations des étudiants
echo $student1->name . " has grade " . $student1->grade . "\n";
echo $student2->name . " has grade " . $student2->grade . "\n";
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Programmation Orientée Objet
1Les bases de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe mot-clé $thisMéthodesPropriétésConstructeur (__construct)Destructeur (__destruct)Récapitulatif - Calculatrice simple4Héritage
Héritage de baseLe mot-clé parent::Redéfinition de méthodeLe mot-clé finalClasses abstraitesRécapitulatif - Hiérarchie des employés7Encapsulation
Public, Protégé, PrivéModificateurs d'accès en détailGetters et SettersMasquage d'informationPromotion de constructeur (8.0)Récapitulatif - Système de gestion d'étudiants10Concepts avancés de la POO
Composition vs HéritageInjection de dépendancesClasses anonymesÉnumérations (PHP 8.1)Fibers (PHP 8.1)Clonage d'objets : analyse approfondieGénérateurs et Itérateurs13Patrons de conception Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode ModèlePatron ÉtatPatron CompositePatron Repository2Espaces de noms et Autoloading
Introduction aux espaces de nomsLe mot-clé useStandard d'Autoloading PSR-4L'Autoloader ComposerRécapitulatif - Projet organisé5Interfaces et Contrats
Introduction aux InterfacesImplémentation d'InterfacesImplémentation d'Interfaces MultiplesInterface vs Classe AbstraiteType Hinting avec les InterfacesRécapitulatif - Calculateur de Formes8Méthodes magiques
Introduction aux méthodes magiques__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Clonage d'objets__serialize & __unserializeRécapitulatif - Collection personnalisée3Propriétés de classe
Propriétés d'instance vs Propriétés statiquesConstantes dans les classesMéthodes et propriétés statiquesPropriétés privées et protégéesPropriétés readonly (PHP 8.1)Récapitulatif - Gestionnaire de compte bancaire6Polymorphisme
Retour sur la redéfinition de méthodePolymorphisme via les interfacesType Hinting et Types d'unionLiaison statique tardiveRécapitulatif - Processeur de paiement9Traits
Introduction aux TraitsUtilisation de plusieurs TraitsRésolution des conflits de TraitsMéthodes abstraites dans les TraitsTraits vs Héritage12Patrons de conception Partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FabriquePatron ObservateurPatron Stratégie