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 :

Membre privé en Java


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 49
    Points : 45
    Points
    45
    Par défaut Membre privé en Java
    Salut à tous,

    Une question concernant la déclaration des variables. Je me pose la question si c'est mieux de passer par des variable intermédiaires que j'affecte aux membrex privés. Par exemple entre les deux exemple ci dessous, lequel vous paraît le plus propre.
    L'exemple est d'une simplicité banale , mais j'ai pas trouvé mieux pour illustrer ce que je veux dire..


    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
       // methods
             public void motherFunction(){
             toto=1;
             int soso=buildToto(toto)
             } 
     
             public int buildToto(int aToto){
     
             Toto=aToto;
             Toto=Toto+1;
             return Toto;
             }
     
     
            // Private members
      	private int	Toto;






    ou bien vaut-il mieux de se passer du aToto comme suit


    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
     
     
             // methods
             public void motherFunction(){
             toto=1;
     
             int soso=buildToto()
             } 
     
             public int buildToto(){
     
             Toto=Toto+1;
     
             return Toto;
             }
     
     
            // Private members
      	private int	Toto;
    Ma question est donc de savoir si c'est mieux de passer par une étape intermédiaire, pour que dans les cas plus compliqué, je sache qu'est ce qui rentre et ce qui sort de ma fonction( par exemple quand je veux faire des tests unitaire pour tester ma fonction).

    Merci pour votre aide,

    SomZ

  2. #2
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Quelques éclaircissements
    Bonjour,

    Le type de variables permet surtout de définir la portée de celle-ci. Ce n'est pas vraiement une question de propreté. A la rigueur, une éconoie de ressources sans plus.
    Bref, il existe à ma connaissance trois types principaux :
    public, private et protected, les deux premières pouvant être précédée du mot clé static éventuellement. Il y a aussi le mot clé final qui peut précéder tous les types et permet de définir une variable comme une constante fixe possèdant une valeur connue à l'avance et qui ne change jamais.
    Lorsque vous définissez une variable dans une classe, cette dernière existera à l'interieur des accolades '{}' ouvrante et fermante qui l'encadre.
    Dans l'exemple suivant, la variable 'valeurAAfficher' n'existe que dans la méthode test(String valeur):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void test(String valeur) {
        String valeurAAfficher = valeur;
        System.out.println(valeurAAfficher);
        }
    Le reste du code de la classe ne peut manipuler valeurAAfichier malgré que la méthode soit public.
    Maintenant, modifions quelque peut cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private String valeurAAfficher;
    public void test(String valeur) {
        valeurAAfichier = valeur;
        System.out.println(valeurAAficher);
        }
    Vous l'aviez déja compris, dans ce cas, tout le reste du code de la classe a accès à valeurAAficher, malgré que cette dernière soit private.
    Cela démontre bien que public ou private n'a pas la moindre incidence au sein de la classe, seul l'endroit où est définit la variable n'a d'incidence sur son accessibilité. private et public servent à définir la portée par rapport à la classe qui a instancié notre classe.
    C'est pourquoi, pour des raisons de lisibilité, en générale on définit les variables de classe (Celles qui sont disponible pour toute la classe) entre la ligne de définission de la classe, et le premier constructeur.
    Le mot clé static, lui est un peu particulier, il signifie que la variable est garantie pour contenir une valeur que la classe ait été instanciée/initialisée ou pas. Concrètement, interroger une telle variable revient à dire aller chercher son contenu directement dans le fichier de classe via une opération du système de fichier local.
    Pour finir, le seul interret de définir des variables de classes, c'est pour éviter la multiplication inutile de déclaration de variables (qui consomment de la ressource mémoire) qui ont le même rôle, et au moment de leur utilisation contiennent la même chose. Dans ce cas, il vaut mieux globaliser la variable plutot que d'en déclarer une dans chaque méthode qui l'utilise.
    J'espère avoir été assez clair.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 49
    Points : 45
    Points
    45
    Par défaut
    La réponse est claire et généreuse.

    Merci,

    SomZ

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

Discussions similaires

  1. classe membres privés
    Par Nayila dans le forum Langage
    Réponses: 12
    Dernier message: 09/10/2007, 21h15
  2. reccupérer un membre privé d'une classe
    Par ouinih dans le forum C++
    Réponses: 10
    Dernier message: 16/08/2007, 11h37
  3. Des membres privés
    Par Gruik dans le forum C
    Réponses: 6
    Dernier message: 06/12/2006, 22h13
  4. Heritage et membre privé
    Par b Oo dans le forum C++
    Réponses: 5
    Dernier message: 27/11/2006, 22h20
  5. acces au membres privés
    Par le y@m's dans le forum Langage
    Réponses: 6
    Dernier message: 22/09/2005, 15h52

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