IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] POO problème de champs private


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [POO] POO problème de champs private
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    	require("Personne.php");
    	require("Footballeur.php");
     
    	$objet2 = new Footballeur("Messi", "Lionel", "Barcelone");
    	echo $objet2->getNomPrenom();
    	echo "<br /><br />";
    	$objet2->setNom("Zidane");
    	echo $objet2->getNomPrenom();
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?php
    class Personne
    {
    	private $nom;
    	private $prenom;
     
    	public function Personne($a, $b)
    	{
    		$this->nom = $a;
    		$this->prenom = $b;
    	}
     
    	public function getNomPrenom()
    	{
    		return $this->nom." - ".$this->prenom;
    	}
     
    }
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?php
    class Footballeur extends Personne
    {
     
    	private $club;
     
    	public function Footballeur($a, $b, $c)
    	{
    		$this->Personne($a,$b); // constructeur de la classe parente
    		$this->club = $c; // this correspond à l’ objet qui appelle la fonction 
    	}
     
    	public function getClub()
    	{
     
    		return $this->club;
    	}
     
    	public function setNom($a)
    	{
    		$this->nom = $a;
    	}
     
    }
    ?>
    Quand je mets les champs de la classe Personne en private, le mutateur setNom ne fonctionne pas, tandis que quand je mets ces champs en public le mutateur setNom fonctionne nickel, pourquoi cela?

    merci d 'avance pour vos réponses?

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Par défaut
    parce qu'un attribut de classe privé n'est pas hérité par les classes enfantes de la première classe.

    il faut utiliser "protected" pour que les classes enfantes héritent de l'attribut, mais que ce dernier reste inaccessible depuis l'extérieur de la classe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. POO + TK ==> problème avec la création de classe
    Par Elverion dans le forum Langage
    Réponses: 1
    Dernier message: 30/04/2008, 18h15
  2. [POO] Un Problème d'héritage?
    Par redsaint0 dans le forum Langage
    Réponses: 6
    Dernier message: 01/06/2007, 17h44
  3. [POO] php4 : recupération des champs d'un select
    Par maysa dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2007, 19h05
  4. [POO] Problème: public, protected et private PHP5
    Par fleur_de_rose dans le forum Langage
    Réponses: 5
    Dernier message: 07/05/2006, 20h26
  5. [POO] PHP5 : Problème avec les classes
    Par fleur_de_rose dans le forum Langage
    Réponses: 9
    Dernier message: 06/05/2006, 20h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo