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

Java Discussion :

ni getter ni setter


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut ni getter ni setter
    Bonsoir à tous,

    Dans le cadre de mon projet en Master 2, je dois réaliser une appli sans getters ni setters.
    Comment remplacer ceux-ci? On m'a toujours appris à mettre mes attributs en privé et de mettre des getters et setters sur ce qui devait être visible.

    Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Simple, tu mes tes attributs en visibilité (protected/public).

  3. #3
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    Ce serait un peu trop simple!
    je vais préciser alors!
    je dois toujours laisser mes attributs en private et je ne peux pas utiliser de getters ni de setters!

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 301
    Par défaut
    Bonsoir,

    Tu devrais lire la discussion suivante qui parle du principe de Demeter. C'est sur le forum C++ mais le principe est un principe de conception et non pas lié au langage. Je pense que cela devrait répondre en partie à ta question.
    Au passage, tu peux également regarder Quand et comment faut-il utiliser des accesseurs / mutateurs ? et
    La conception d'une classe doit-elle se faire plutôt par l'extérieur ou par l'intérieur ?
    . Désolé, c'est également dans la partie C++ mais c'est des aussi des principes de conception.

    D'un point de vue pure conception, c'est une mauvaise pratique d'utiliser les accesseurs (cf les liens ci-dessus) mais il me semble qu'en Java c'est une pratique courante utilisée par de nombreux framework (c'est lié à la possibilité du langage de s'introspecter, mais les purs Javaistes pourront plus développer l'utilité d'une telle pratique en Java)

  5. #5
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    Merci bien pour ta réponse. Effectivement que ce soit Java ou C++ c'est le même principe.
    Il me reste maintenant à comprendre tout ça et à l'utiliser!

  6. #6
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    On va dire que j'ai la classe suivante :
    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
     
    public class MP3Music implements Music {
     
    	private File fileMusicPath;
    	private ID3Tag id3Tag;
     
    	public MP3Music(File fileMusicPath) {
    		this.fileMusicPath = fileMusicPath;
    		this.id3Tag = new ID3Tag(fileMusicPath);
    	}
     
    	@Override
    	public String giveInformations() {
    		// TODO Auto-generated method stub
    		return null;
    	}
     
     
    }
    Mon lecteur accèdera à mon objet MP3Music et doit récupérer l'ID3Tag. Comment faire alors? Masquer les informations dans la méthode giveInformations() afin de cacher le fonctionnement?

  7. #7
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Bonsoir,
    pourrais-tu préciser un peu plus ce qui est demandé car avec aussi peu d'informations, il est difficile de te venir en aide. Par exemple, la classe ci-dessous ne possède pas de getter ni setter pour x et y, mais elle reste malgré tout utilisable.
    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
    class Point {
      private int x;
      private int y;
     
      public Point(int x, int y) {
        this.x = x;
        this.y = y;
      }
     
      public void move(int dx, int dy) {
        x += dx;
        y += dy;
      }
     
      public Point copy() {
        return new Point(x, y);
      }
     
      public void draw(Graphics g) {
        g.drawLine(x, y, x, y);
      }
    }

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

Discussions similaires

  1. Les Getters et Setters en Java
    Par faressam dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 18/04/2012, 16h40
  2. [Postsharp] Manager les getter et setter d'une propriété
    Par anthyme dans le forum Framework .NET
    Réponses: 4
    Dernier message: 13/01/2009, 11h19
  3. getters and setters ?
    Par zippeurfou dans le forum Eclipse C & C++
    Réponses: 4
    Dernier message: 12/07/2008, 11h53
  4. Réponses: 11
    Dernier message: 23/03/2007, 19h38
  5. Generation automatique des Getter et Setter
    Par VAPRO dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 23/03/2007, 12h11

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