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 :

renvoie de valeur dans un context static


Sujet :

Langage Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut renvoie de valeur dans un context static
    Bonsoir, je voulais essayer de comprendre porquoi une méthode définit en static ne peut pas renvoyer de valeur ?
    Et de plus quelle type de méthodes peuvent etre déclarer en static?
    A part le "main" !

    Bon, pour moi l'attribut static est une sorte de variable global partageable par toutes les instances d'un meme classe .
    Donc on peut définir des méthode statiques qui peuvent être appelées indépendamment de tous les objets d'une meme classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private int x ; 
     
    public static int getX(){
     
    		return this.x ; 
     
    	}
    Alors pourquoi il y a une erreur dans ce code ??

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Par défaut
    Le problème n'est pas qu'une méthode statique ne peut pas renvoyer de valeur, c'est que dans ton code, tu veux utiliser une variable d'instance ( this.x ) .

    Or dans une méthode static tu ne peux PAS faire appel à une variable d'instance.

    Je te renvoie à la fac pour plus d'infos, mais n'hésite pas s'il reste des points obscurs

    http://java.developpez.com/faq/java/...motsClesStatic

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut
    Désolé, je n'ai pas saisi la sémantique de la chose !!

    Concrétement l'attribue static de faire quoi

    Par ce que là j'ai lu le fac que tu m'a passé, et il reste des points obscurs

    dans mon code qu'aurrait-il fallu faire pour ne pas avoir d'erreur de compilation ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Par défaut
    Tout dépend de ce que tu veux faire.
    Car tu as une variable interne, donc tu ne peux pas l'utiliser à partir d'une méthode statique.

    Après il faut que tu changes le code par rapport à ta conception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    private int x;
     
    public int getX()
    {
        return this.x;
    }
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    static int x;
     
    public int getX()
    {
      return x;
    }

    Le mot-clé static est utile par exemple ici, où on veut compter le nombre de fois que la classe A est instanciée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    public class A
    {
      public static int compteur=0;
     
      public A()
      {
        compteur++;  // Ou bien A.compteur++;
      }
     
    }
    Donc à chaque fois qu'on fait appel au constructeur de A pour instancier un objet A, le compteur est incrementé.

    Pour les méthodes, il y en a une foule dans la classe Math par exemple :

    Math.abs(x) qui renvoit la valeur absolue de x est statique car elle n'est pas dépendante d'une instance de Math....


    Je suis pas très pédagogue dans mes explications malheureusement

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut
    Non, c'est clair ....
    J'avais du mal avec les nuances et tout....
    donc l'attribu static est utile mais pas dans le sens ou je le comprenais ....

    Faut arréter de penser en C


    En tout cas merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Par défaut
    Tant mieux si j'ai pu t'éclairer un peu

  7. #7
    Membre éclairé Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Par défaut
    Salut à tous

    si t'as cherché dans la faq tu aurais du trouver ça..

    Cordialement..

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut
    c'est le lien qui été proposé par KuTaY.....

    C'est dans ce lien que je n'ai pas compris certain truck !!

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

Discussions similaires

  1. [MySQL] Renvoi de valeur dans un if else
    Par solaris13 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/11/2008, 12h45
  2. Réponses: 2
    Dernier message: 23/12/2007, 20h09
  3. [Débutant] Afficher une valeur dans un objet Static Text
    Par bart31400 dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 26/06/2007, 09h22
  4. Réponses: 25
    Dernier message: 23/01/2007, 22h27
  5. Renvoi d'une valeur dans un champ avec un style
    Par m@thieu dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/11/2005, 18h09

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