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 :

[Debutant]difference entre static et non static


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 29
    Points : 16
    Points
    16
    Par défaut [Debutant]difference entre static et non static
    Bonjour,

    je n ' arrive pas à assimiler pas mal de choses en POO (je débute soyez clément).

    je lisais la Faq ca m ' a légérement aidé , si je comprends bien lorsque je crée une methode statique ou un champ statique cela signifie que c est une variable /ou methode de la classe elle meme?si j ' ai encore bien capté , on a pas besoin d instancier un objet pour qu on puisse l invoquer en dehors de la classe?

    Mais quel interet?je ne comprends pas étant donné que si je me trompe on instancie un objet de la sorte dans un main :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    main
    Point A = new Point();
    or pour pouvoir invoqué une methode statique de la classe point en dehors de la classe je peux faire ça :

    A.mamethodestatique

    A moins que je suis a coté de la plaque , j ai besoin alors de créer l objet A.

    je tiens à préciser que j ' essaie d apprendre en solitaire et que je me base sur les différents supports trouvés sur le net.

    merci

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Salut, si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Point A = new Point();
    A.mamethodestatique()
    Tu auras un warning disant : the method mamethodestatique should be access in a static way.
    La méthode static doit s'appeler de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Point.mamethodestatique()
    Les méthodes statiques sont souvent utilisées pour créer des fonctions utilitaires, de conversion par exemple (dans le jdk) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Integer.toString
    Integer.parseInt

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    salut ,merci de ta réponse

    -cela signifie qu ' elle ne peut pas etre alors appliqué a une instance d objet? ce n ' est pas une methode propre à l' objet mais à toute la classe?

    -pourrais je passer en paramètre un objet dans une methode statique?

    -dans une class (sans main) , je peux créer une methode utilisant un objet propre a cette classe?

    merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Bonjour.

    Réponses à tes questions:

    1- cela signifie qu ' elle ne peut pas etre alors appliqué a une instance d objet? ce n ' est pas une methode propre à l' objet mais à toute la classe?

    Une variable ou méthode statique peut être appelée sans que la classe soit instancié. Mais, cela ne veut pas dire qu'on ne peut pas l'appeler sur un objet de la classe. Mais, quand même elle reste une variable ou une méthode de la calsse. 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    public class Point {
     
     static int a;
     
     public static void afficher(){
       System.out.println(a); 
    }
     
    public static void main(String[] args){
    // je peux écrier:
     
    Point.a = 3;
    Point.afficher();
     
    //comme je peux écrire
     
    Point varPoint = new Point();
    varPoint.a = 4;
    varPoint.afficher();
     
    // Si par exemple je fais:
     
    varPoint.a ++;
     
    // ça revient au même d'écrire:
     
    Point.a ++;
     
    }
     
    }
    2- pourrais je passer en paramètre un objet dans une methode statique?

    Oui, on peut le faire. Je l'ai essayé et ça fonctionne.

    Bon courage.

  5. #5
    Membre confirmé Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Points : 565
    Points
    565
    Par défaut
    L'interet des méthodes et des variables statiques résident essentiellement dans le fait que justement tout est commun.
    Par exemple, c'est que qui est utilisé pour faire un compteur d'objet, ou pour transmettre un signal à l'ensemble des objets de ce type.
    Par exemple, tu peux l'utiliser pour mettre en pause une animation, ou un série de thread sans avoir a boucler sur l'ensemble, mais juste en transmettant l'info globalement via la méthode statique.
    C'est pas parce que ca marche que c'est bon!!
    Pensez au bouton "Résolu"
    Je ne réponds pas en privé aux questions

  6. #6
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Méthode (ou attribut) static = méthode de classe, méthode commune à tous les instance de ta classe.

    Méthode (ou attribut) non static = Méthode d'instance, méthode local à chaque instance de ta classe.
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


Discussions similaires

  1. Réponses: 3
    Dernier message: 25/10/2006, 22h54
  2. [DEBUTANT] differences entre " et ' ?
    Par Gromitou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/05/2006, 13h32
  3. [debutant] difference entre 2 heures
    Par sergoid dans le forum Access
    Réponses: 2
    Dernier message: 17/03/2006, 18h14
  4. [Débutant] Différences entre servlet et EJB
    Par sunchai dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/03/2006, 12h35
  5. Réponses: 1
    Dernier message: 10/12/2004, 10h50

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