L’encapsulation

  • Par défaut, attributs et méthodes sont « public »
  • Méthodes: pas de modificateur de visibilité nécessaire (= public)‏
  • Attributs: si pas de modificateur de visibilité, on doit spécifier « var » (= public)‏
    class Voiture {
    var $nbreLitre = 30; // = public
    function donneConso($nbreKm) {
        return $this->nbreLitre * $nbreKm;
    }
}
  • Possible de contrôler l’accès aux membres de la classe
    • “private”: accessible uniquement depuis la classe elle-même
    • “protected”: accessible uniquement depuis la classe elle-même et depuis ses sous-classes
  • Possible d’utiliser des « getter » et des « setter »

<?php

class Voiture {
	private $nbreLitre = 30;
	function getNbreLitre() {
		return $this->nbreLitre;
	}
	function setNbreLitre($nbreLitre) {
		$this->nbreLitre = $nbreLitre;
	}
	function donneConso($nbreKm) {
		return $this->nbreLitre * $nbreKm;
	}
	function donneConsoAnnuelle($nbreKm,$nbreJours=20) {
		return $this->donneConso($nbreKm) * $nbreJours;
	}
}

$uneVoiture = new Voiture;
$uneVoiture->setNbreLitre(30);
echo "consommation annuelle : " . $uneVoiture->donneConsoAnnuelle(100, 30);
echo " pour un nbre de litre : " . $uneVoiture->getNbreLitre();

Sujet précédent

PHP et l’OO

Sujet suivant

Héritage

Cette page