Académique Documents
Professionnel Documents
Culture Documents
Exemple 1 :
class Personne
{
// Attribut
public $nom;
public $prenom;
private $dateNaissance;
private $salaire;
public $nbEnfant;
// Constructeur
function __construct($nom, $prenom, $dateNaissance, $nbEnfant = 0)
{
$this->nom = $nom;
$this->prenom = $prenom;
$this->dateNaissance = $dateNaissance;
$this->nbEnfant = $nbEnfant;
}
// Mutateurs
public function setSalaire($valeur)
{
$this->salaire = $valeur;
}
// Accesseur
public function getSalaire()
{
return $this->salaire;
}
// Méthode
public function identite(){
return $this->nom . " " . $this->prenom;
}
// Méthode
public function age()
{
// Implémentation
}
// Méthode
public function argentPoche()
{
// Implémentation
}
}
class Mammifere {
private $vertebre = true;
function __construct($prenom)
{
parent::__construct();
this->$prenom = $prenom;
}
Exemple 2 :
• Combien avons-nous de classe instantiable ?
• Pourquoi l'héritage est intéressant ici ?
• Lire l'UML :
o Combien de propriétés possède un Ordinateur.
o Combien de propriétés possède un PC.
o Et le Mac ?
public age(){
return date('Y') - $this->dateFabrication;
}
public toString(){
return "{$this->nom}, {$this->dateFabrication}";
}
}
Question 1
Question 2
La méthode toString est utilisée pour afficher le contenu des étagères dans l'interface
Web. Pour améliorer la lisibilité de l'interface, il vous ait demandé de spécialiser la
méthode toString pour afficher par exemple :
// méthode commune
public function parler() {
print $this->getBlahBlah() . "\n";
}
}
// Classe fille, instanciable car concrète l'ensemble des méthodes possède du code
class EtudiantSIO extends EtudiantAbstrait
{
private $option = "SLAM";
// Classe fille, instanciable car concrète l'ensemble des méthodes possède du code
class EtudiantSEN extends EtudiantAbstrait
{
private $competences = "SOUDER";
// Instanciation
$class1 = new EtudiantSIO();
$class1->parler(); // L'informatique c'est cool, je suis : SLAM
echo $class1->demarrerUneDiscussion('La sécurité') ."\n"; // Je vais vous parler de « La sécurité »
// Le code suivant ne fonctionne pas car on ne peut pas instancier une classe abstraite
$class1 = new EtudiantAbstrait(); // Erreur, on ne peut pas instancier une classe abstraite
class Animal{
// Reste de la classe
// …
public bruit(){
echo "BRUUUUIIIITTTT";
}
// Reste de la classe
// …
}
public bruit(){
parent::bruit()
echo " (Oui mais compréhensible)";
}
// Reste de la classe
// …