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

avec Java Discussion :

Accesseurs et modificateurs


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Par défaut Accesseurs et modificateurs
    Bonjour,

    j'aurais besoin d'une petite confirmation concernant les accesseurs et modificateurs.

    Si j'ai une classe LouePar qui a deux champs : un de type Vehicule veh et l'autre de type Client cl
    est-ce que je peux écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void setVC(Vehicule v, Client c)
    { veh = v;
       cl = c;}
    ???

    Merci pour vos réponses.

  2. #2
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Bien sur, c'est comme ça que ça marche

    Si tu veux que ce soit plus clair tu peux aussi écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void setVC(Vehicule v, Client c)
    { this.veh = v;
       this.cl = c;}
    Ca revient au même mais le sens est plus évident quand on ne connait pas bien la classe.

  3. #3
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Il est conseillé de séparer les accesseurs et mutateurs pour les différents attributs.
    Ainsi, tu auras deux méthodes de chaque:
    • une pour la voiture
    • une pour le client

    Ca permet de pouvoir facilement changer une des deux propriétés sans obligatoirement devoir conserver ou récupérer l'autre.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 55
    Par défaut
    Pour aller dans le même sillage de Antoine_935, il te faut les 4 méthodes suivantes :

    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
     public Client getClient() {
            return client;
        }
     
        public void setClient(Client cli) {
            this.client = cli;
        }
     
        public Vehicule getVehicule() {
            return vehicule;
        }
     
        public void setVehicule(Vehicule veh) {
            this.vehicule = veh;
        }
    ainsi tout est séparé et plus visible.

  5. #5
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    IL me semble que la définition des accesseurs/mutateurs dépend plutot de tes contraintes fonctionelles:
    - mettre des accesseurs/mutateurs pour chaque champ n'est pas une bonne pratique si elle est systématique: quelle est la logique? l'objet garde t'il une paire non-modifiable Client/voiture (alors ça passe par le constructeur et il n'y a pas de méthode de modification); cette paire est elle modifiable mais les valeurs changent ensemble (alors une méthode pour changer la paire comme dans l'exemple initial), etc... le risque d'avoir des mutateurs séparés est d'avoir des modifications incohérentes et un objet dans un état que la morale réprouve (par exemple avec des champs null : bonjour les bugs).
    Donc il n'y a pas de recette mais une réflexion sur ce que doit faire l'objet.

  6. #6
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 46
    Par défaut
    Bonjour à tous,

    Juste pour info, le 'this' est souvent utilisé pour permettre aux nouveaux venus de se familiariser avec la syntaxe Java. Cela permet de bien clarifier le code lors d'un relecture.

    A la base le 'this' ne devient obligatoire que lorsque l'on a le même nom de handlers afin de pouvoir différencier les références :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    public class LouePar {
     
    Vehicule vehicule;
    Client client;
     
    public void setVC(Vehicule vehicule, Client client)
    { 
       this.vehicule=vehicule;
       this.client=client;
    }
     
    }
    Je préfère d'ailleurs coder de cette façon, car je trouve cela plus lisible...mais bon c'est personnel.

    ====
    JAVA bien merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/06/2013, 14h14
  2. [Language][constructeur] - attributs ou accesseur
    Par grand's dans le forum Langage
    Réponses: 6
    Dernier message: 26/04/2005, 08h47
  3. [C#] [VS.NET] Peut on faire un accesseur sur objets?
    Par Designotik dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/01/2005, 21h56
  4. [NetBeans 4.0] Accesseur?
    Par Kaor dans le forum NetBeans
    Réponses: 2
    Dernier message: 20/12/2004, 14h22
  5. Différences modificateurs d'accès
    Par Oliveuh dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2004, 10h32

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