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 :

Portée des variables


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Par défaut Portée des variables
    Bonjour,
    je suis débutant en java et j'ai un petit problème de portabilité de variable.
    Voila, j'ai créer un projet avec différents packages. Dans ces packages j'ai créer des classes. Le truc c'est que j'ai créer une variable dans une classe d'un package et j'aimerais utiliser cette variable dans une autre classe d'un autre package (mais dans le meme projet). J'ai mis la variable en public, puis dans le package ou je veut utiliser la variable j'ai fai un import du package ou est déclarée la variable, mais voila mon compilateur me dis " variable cannot be resolved" je vois pas comment on peu faire pour rendre la variable visible à tous les classes des différents packages.
    Merci

  2. #2
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    Salut,

    tu decalres cette variable en privé tout de suite !
    par contre tu crée une methode getMavaraible elle en public
    Par contre a tu bien fait l' "import" de cette classe (celle qui contient ta variable dans e classe ou tu souhaite l utiliser

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Par défaut
    t'es sur qu'il faut la metre en private elle risque pas d'etre plus visible par les autres classes des autres package?
    j'ai fait un import ihm.classe12
    avec ihm c'est le nom du package ou est située la classe classe12

  4. #4
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par mmarcoboss
    t'es sur qu'il faut la metre en private elle risque pas d'etre plus visible par les autres classes des autres package?
    C'est juste un conseil qu'il te donne, il est en effet préférable d'accéder à une variable par des accesseurs/setteurs plutôt que directement.

    Donc tu fais quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Test{
       private int a = 1;
     
       public int getA(){
          return a;
       }
    }
    et tu y accèdes ensuite avec getA(). Mais cela ne résoudra pas ton problème.

    Tu peut nous montrer un peu de code, voir si c'est correct ?

  5. #5
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Ta variable tu veux en faire quoi?

    Tu veux que ce soit une variable accessible par toute les classes car c'est une constante ou c'est une variable d'objet?

    En gros, si tu a la classe Voiture, avec une variable nom.
    Le nom change en fonction des voitures.

    On reprend la classe Voiture, avec une variable nbRoue.
    nbRoue sera toujours egal a 4.

    Exemple de classe
    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 Voiture{
     
    private nom;
    public static int nbRoue = 4;
     
    public void setNom(String n){
      this.nom = n;
    }
     
    public String getNom(){
      return this.nom;
    }
    }

    C'est quel type de variable que tu as?

    Dans le premier cas, il faut faire ce qui t'a été dit plus haut, à savoir que tu auras absolument besoin d'une instance d'objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Voiture v = new Voiture();
    String n = v.getNom();
    Dans le deuxieme cas, tu n'auras qu'a faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int nb = Voiture.nbRoue;
    Voila j'espere que ca pourra t'aider!

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Par défaut
    voila le code ou se situ la variable mac que je veux acceder dans une autre classe d'un autre package

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    public class Horloge {
     
    	private String produit;
    	private String mac;
    	private String ip;
    	private String netmask;
    	private String gateway;
     
     
    	/**
             * Creation d'une horloge.
             */
     
    	public Horloge() {	
    		produit  = "";
    		mac      = "";
    		ip       = "";
    		netmask  = "";
    		gateway  = "";
    	}
     
    	/**
             * Creation d'une horloge avec ses parametres asocies.
             * 
             * @param produit
             * @param mac
             * @param ip
             * @param netmask
             * @param gateway
             */
     
    	/**
             * Acquisition de l'adresse mac de l'horloge.
             * 
             * @return adresse mac
             */
     
    	public String getMac() {
     
    		return mac;
    	}
    cette classe fait partie du package nomé conf.
    Voila la classe dans laquelle je veux l'utiliser

    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
    27
    28
    import conf.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
     
    public class FenetreBis extends JFrame implements ActionListener,ItemListener{
     
     
    // evenement du au choix d'une des comboBox
    	public void itemStateChanged(ItemEvent event){
     
     
     
    		int choix = DecalEteHiverBox.getSelectedIndex();
    		int choix1 = AffichageBox.getSelectedIndex();
    		int choix2 = DecalBox.getSelectedIndex();
    		int choix3 = DecalautoBox.getSelectedIndex();
    		int choix4 = LanguesBox.getSelectedIndex();
    		int choix5 = LuminositeBox.getSelectedIndex();
    			System.out.println("le choix pays décalage est" + choix);
    			System.out.println("le choix affichage 12/24 est" + choix1);
    			System.out.println("le choix décalage horaire est" + choix2);
    			System.out.println("le choix changement auto est" + choix3);
    			System.out.println("le choix langue est" + choix4);
    			System.out.println("le choix luminosité" + choix5);
    			System.out.println("adresse mac" + mac);			
    	}
    }

  7. #7
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    re,

    je ne vois pas la directive "package conf;" dans ton fichier Horloge.java ?
    C'est un oubli ou il n'y en a pas ?

    Sinon je vois pas la...
    A part verifier que le path de recherche de ton IDE pointe bien sur le repertoire ou est situé Horloge.class

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/02/2005, 09h05
  2. [FLASH MX] Portée des variables ???
    Par mic79 dans le forum Flash
    Réponses: 2
    Dernier message: 08/02/2005, 10h21
  3. Portée des variables vbscript vers ASP
    Par Immobilis dans le forum ASP
    Réponses: 3
    Dernier message: 03/11/2004, 10h14
  4. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34
  5. [Portée] portée des variables
    Par parksto dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2004, 21h05

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