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 :

resolution pour les variables


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut resolution pour les variables
    bonjour,

    j'ai un exercice a faire, mais je ne sais pas trop comment le résoudre, quelqu'un serrai m'aider a la résoudre?

    voici l'énoncer ...

    Etant donné les classes
    suivantes, combien de
    variables locales/de
    variables d’instance/de
    variables de
    classe/d’objets ont été
    créés après exécution
    de

    la ligne 6 de ClasseC?

    la ligne 7 de ClasseC?



    voila, si quelqu'un serrai me donner des astuce et la reponse pour le résoudre...
    on vous remerciant d'avance....

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    Il faut procéder de manière récursive :
    Que s'est-il passé à la ligne 7 de la classe C à l'intérieur de la classe C ?
    Quelles méthodes ont été appelées de la classe A et de la classe B ?
    Dans ces méthodes, que s'est-il passé ? ...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    ok, donc a chaque fois que je vois une methode ou une classe, je dois rentrer dedans?

    est ce que dans une methode, les variables sont elles local ou autre?
    je crois avoir lu que la variable d'instance est unique dans un programme? est il vrai?

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    ok, donc a chaque fois que je vois une methode ou une classe, je dois rentrer dedans?
    Oui

    est ce que dans une methode, les variables sont elles local ou autre?
    Une variable déclarée dans une méthode est locale à la méthode.
    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
    17
    18
    19
    20
     
    public class MaClasse {
        public int donnee;// declaration de la variable "donnee"
     
        public MaClasse() {
            donnee = 3;
        }
     
        public int methode() {
            int resultat; // déclaration de la variable "resultat"
            if (true) {
                int intermediaire; // déclaration de la variable "intermediaire"
                intermediaire = 5;
                resultat = intermediaire;
            } else {
                resultat = donnee;
            }
            return resultat;
        }
    }
    Les variables "resultat" et "intermediaire" sont des variables locales à la méthode "methode()".
    La variable "donnee" est une variable d'instance de la classe MaClasse
    Je vous conseille de lire ceci :
    http://jmdoudoux.developpez.com/cours/developpons/java/
    et en particulier ce chapitre :
    http://jmdoudoux.developpez.com/cour...xe.php#syntaxe

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    merci beaucoup je vais regarder cela

  6. #6
    Membre expérimenté Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Points : 1 396
    Points
    1 396
    Par défaut
    Citation Envoyé par jcdentons Voir le message
    Oui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class MaClasse {
        public int donnee;// declaration de la variable "donnee"
     
        public MaClasse() {
            donnee = 3;
        }
    J'aimerais corriger une chose, en java et en programmation orienté objet en général, on utilise l'encapsulation des données. La variable donnee déclaré dans MaClasse est en public donc n'importe qui de l'extérieure peut y accéder de cette façon : MaClasse.donnee et la modifier.
    Une déclaration plus correct est de faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class MaClasse {
        private int donnee;// declaration de la variable "donnee"
    Pour modifier la variable ou l'obtenir, on crée des méthodes set et get comme ceci :

    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 class MaClasse {
        private int donnee;                     /* Variable propre à une instance */
        private static int donneeStatic ;            /* Variable commune à toutes   les instances, ne sera déclarée et initialisé qu'une fois.*/
     
        public MaClasse() {
            donnee = 3;
            donneeStatic = 0;
        }
        public void setDonnee(int d)
        {    donnee = d;   }
     
        public int getDonnee(){ return donnee; }
     
    }

  7. #7
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    En effet,
    Mais ceci était juste un exemple pour les types de variables (qui est a priori l'objet de l'exercice).

  8. #8
    Membre expérimenté Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Points : 1 396
    Points
    1 396
    Par défaut
    Oui effectivement, je me le suis dit aussi C'est pour ca que j'ai rajouté un exemple de static dans le code Mais bon vaut mieux qu'il prenne les bonnes habitudes

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    donc,dans le meme style d'exercice...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Classe1{
    public static void main(string[] args){
    int u = 3;
    int v = 4;
    CLasse2 c2a = new Classe2(u);
    Classe2 c2b = new Classe2(v);
    Classe2 c2c =c2a;
    System.out.println("blabla");
    }
    }
    -------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Classe2{
    static int i;
    public int j;
    private int k;
    private Classe3 c3;
     
    public Classe2(int val){
    k =val;
    }}

    voila ma reponse est
    1 variables de classe (j'hesite vu qu'elle n'est pas utiliser)
    5 variables locales
    2 objets
    2 variables d'instances

    merci pour la correction.

    dernier petite question, est ce quand on declare des variable comme dans la classe2, et que elle ne sont pas utiliser(comme dans la classe) sont elles cree ou non?

  10. #10
    Membre expérimenté Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Points : 1 396
    Points
    1 396
    Par défaut
    Salut,

    Si tu savais mettre les balises CODE pour tes codes ca serait gentil

    Sinon pour ta question prenons un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Classe2 c2a = new Classe2(u);
    Ceci instancie un nouvel objet. Le constructeur de la classe Classe2 est appelé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Classe2(int val){
    k =val;
    }
    Il initialise k à val, jusque là pas de problème maintenant pour les autres variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    static int i;                     // initialisé à 0 lors de l'instanciation du première objet.
    public int j;                    // initialisé a 0
    private int k;                  // initialisé a val
    private Classe3 c3;          // initialisé a null
    Il faut savoir que lors de l'instanciation d'un objet les autres variables non initialisé dans le constructeur sont initialisées par défaut à savoir :

    double à 0.0
    int à 0
    boolean à false
    objet et tableau à null

    Maintenant les variables static ne sont initialisées que lors de la création du première objet du programme (elles ne sont donc pas remise à zéro à chaque fois).

    Sinon n'oublie pas que ton énoncé est :
    variables locales
    variables d’instance
    variables de classe/d’objets

    Objet et classe c'est la même chose

    Je pense que tu peux essayer de te corriger à présent.

    Bye bye

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    ok merci je vais tenter de me corriger, mais en fait c'est deux different dans mon exercices l'objet et de classe.

    Donc si je comprend bien y a bien une place dans la memoire pour les instance non utiliser comme, static int i (qui est la variable de classe)
    public int j, private k et private Classe3 c3; qui sont des variable d'instance.

    donc a compter dans mes variable creer.
    et si je peux conclure que des que l'on declare une varialbe, meme non utliser dans le programme, elle est creer?


    j'ai examen lundi, si possible de pas me laisser dans le flou merci

  12. #12
    Membre expérimenté Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Points : 1 396
    Points
    1 396
    Par défaut
    Je pense que j'ai compris ce qu'il appelle variable de classe alors, ca doit être ton static (comme tu le disais). C'est une variable qui appartient à la classe et qui sera la même pour toutes les instances de la classe, par contre il me semble que mettre public ou private devant est plus rigoureux.

    Sinon par exemple pour : private Classe3 c3, pour moi c'est un objet mais c'est aussi une variable d'instance donc c'est un objet d'instance ?

    Quand tu déclares une variable, oui elle est créer, elle existe et possède une adresse. Par contre ce qui se trouve a cette adresse diffère en fonction des cas.

    Si tu veux tu peux m'envoyer ton adresse msn par pm, on pourra toujours en parler, je suis moi même en pleine session d'examen

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    héhé objet instance ca se complique la ;D, par chance j'ai reussi a joindre notre prof de Java, et j'ai pu lui poser la question directement...

    En fait, nous creons 2 objet (avec new), et dans la classe nous avons 4 variable d'instance qui se sont creer, dont une static donc variables de classe.

    le Classe 3b ,n'est juste d'autre qu'une varialbe local

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

Discussions similaires

  1. convention de nommage pour les variables
    Par nono_31 dans le forum Langage
    Réponses: 10
    Dernier message: 28/08/2007, 10h04
  2. Réponses: 17
    Dernier message: 22/12/2006, 15h28
  3. Réponses: 6
    Dernier message: 20/12/2006, 10h12
  4. unset() pour les variables de session
    Par ozzmax dans le forum Langage
    Réponses: 2
    Dernier message: 05/05/2006, 15h56
  5. Problème pour les variables de session
    Par brotelle dans le forum Langage
    Réponses: 11
    Dernier message: 20/04/2006, 11h22

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