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 Java Discussion :

utilité get set et constructeur


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut utilité get set et constructeur
    Bonjour,
    A quoi sert un mutateur s'il ne vérifie pas l'intégrité de la valeur transmise à l'attribut ? exemple :
    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
     
    public abstract class Vehicule
    {
    	private String numero;
    	private float poids;
    	private float hauteur;
     
    	public Vehicule (String numero, float hauteur, float poids)
    		{
    		this.numero = numero;
    		this.hauteur = hauteur;
    		this.poids = poids;
    		}
    	public String getNumero () { return this.numero; }
    	public void setNumero (String numero) { this.numero = numero; }
                 etc...
    Dans le cas présent je ne vois pas l'utilité de setNumero
    Merci de vos lumières

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Cela sert à l'encapsulation des données et donc à l'évolution.

    Quelques exemples :
    • La méthode setNumero() pourrait évoluer par le futur (ajout de règles d'intégrité, gestion d'évènement, etc...).
    • Une classe fille pourrait définir des règles d'intégrité pour cette valeur.



    Si tu passes par un accès direct tu n'as plus aucun moyen de contrôler cela, et ce qui pourrait paraitre plus simple d'un premier abord se révèlera bien complexe à faire évoluer...

    a++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut
    Les variables d'instances de ta classe ont été définies en private, ce qui empêche qu'une autre classe les modifie directement en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monVehicule.numero = valeurDeNumero ;
    Ceci oblige à passer par une méthode set pour modifier la valeur d'une variable. Et justement ces méthodes sont là pour jouer le rôle de garde-fou, et empêcher que l'on essaye d'affecter n'importe quelle valeur à une variable.

    Effectivement dans ton exemple, elle ne sert pas à grand chose a priori, si ce n'est qu'elle assure au moins que l'on essaye d'affecter un objet de type String à la variable numero...

    Mais il est possible dans la fonction setNumero d'ajouter des traitements d'exception. Par exemple, tu peux t'assurer que ton numéro est un entier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public void setNumero(String unNumero){
      try{
        Integer.parseInt(unNumero) ;
        numero = unNumero ;
      }catch(NumberFormatException e){
        //on traite ici le cas où le numéro n'est pas un entier
      }
    }

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

Discussions similaires

  1. Problèmes sur Get Set d'une variable.
    Par Mattk dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/04/2007, 01h43
  2. get set modifier valeur
    Par jcaspar dans le forum Langage
    Réponses: 1
    Dernier message: 11/03/2007, 01h36
  3. fonction générique pour get set et change
    Par tretsois dans le forum C++
    Réponses: 9
    Dernier message: 18/02/2007, 18h28
  4. Réponses: 7
    Dernier message: 23/01/2007, 11h08
  5. [VB6]Property Get/Set avec groupe de contrôles
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/01/2006, 12h09

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