Logo: Marc Harnist

N° 217 - Classes mère et filles: gestion des attributs et fonctions
 - Le 20/04/2018 Catégorie: PHP

Exemple classe mère Personne < ? php // Auteur: Marc L. Harnist le 20/04/2018 // Faire ensuite un clonage d'un objet (ex 6) // Création d'une classe abstraite "Personne" avec deux attributs abstract class Personne{ // Private ici, rendus publiques dans classes/Electeur.php protected $prenom; protected $nom; // Création du constructeur protected function __construct($prenom, $nom){ $this->prenom = $prenom; $this->nom = $nom; } IMPORTANT: LES GETTERS SONT DANS LA CLASSE MERE POUR SES ATTRIBUTS public function getPrenom(){ return $this->prenom; } public function getNom(){ return $this->nom; }

Les classes filles

< ?php // Création d'une classe enfant de Personne class Client extends Personne{ public $adresse; public $separateur; public function __construct($prenom, $nom, $adresse, $separateur = ", "){ parent::__construct($prenom, $nom); $this->adresse = $adresse; $this->separateur = $separateur; } public function getCoordonnees(){ return $this->prenom . $this->separateur . $this->nom . $this->separateur . $this->adresse; } } // Close des classe Client < ?php class Electeur extends Personne { public $bureau_de_vote; public $vote = False; public $separateur; public function __construct($prenom, $nom, $bureau_de_vote, $separateur = ", "){ parent::__construct($prenom, $nom); $this->bureau_de_vote = $bureau_de_vote; $this->separateur = $separateur; } // Public function "avoté" enregistre si une personne // a voté dans la propriété vote. public function avote(){ $this->vote = True; } public function getBureau_de_vote(){ return $this->bureau_de_vote; } } // Close class Electeur

La page qui utilise ces classes

< ?php // AUTOLOADER DE CLASSES function chargerLesClasses($nom_des_classes){ require "classes/" . $nom_des_classes. ".php"; } spl_autoload_register("chargerLesClasses"); // CREATION D'OBJETS $clientA = new Client("Marc", "Harnist", "San Francisco"); ?>

getCoordonnees();?>

< ?php // Création d'objets $electeurA = new Electeur("Terence", "Hervin", "Berg"); // L'électeur vote $electeurA->avote(); // Contrôle du vote if($electeurA->vote == True) echo "{$electeurA->getNom()} du bureau de vote " . $electeurA->getBureau_de_vote() . " a voté."; else echo "{$electeurA->getNom()} du bureau de vote {$electeurA->getBureau_de_vote()} n'a pas encore voté.";


Catégories: News : Lexicon : Tools : Pages : Idees : PHP : Js : Versioning : Symfony : Idees-realisees : Java : MySql : Bootstrap : C : Css : Test : Reactjs : Eni