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 :

Invocation automatique de methode static


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 122
    Par défaut Invocation automatique de methode static
    Bonsoir,

    En adaptant un exo trouve sur ce site, j'ai ecrit le code suivant:

    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
    class Mammifere {
            static { System.out.println("Creation d'un mammifere");}
     
            public Mammifere(){
                    System.out.println("Je suis un mammifere");
            }
     
            static { System.out.println("Creation terminee");}
    }
     
    public class Homme extends Mammifere {
            public Homme(){
                    System.out.println("Je suis un homme");
            }
     
            public static void main(String[] args) {
                    System.out.println("Un fils va nous etre donne");
                    Homme h = new Homme();
                    System.out.println("Un nouvel homme est ne");
            }
    }
    La sortie est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    nuriel@serenity:$ javac Homme.java 
    nuriel@serenity:$ java Homme 
    Creation d'un mammifere
    Creation terminee
    Un fils va nous etre donne
    Je suis un mammifere
    Je suis un homme
    Un nouvel homme est ne
    En ne donnant pas de nom aux methodes statiques, elles sont appelees d'office, et avant le constructeur de la classe parente. Quelqu'un pourrait il m'expliquer le deroulement des appels qui finit par les invoquer ? Je m'attendais a ce que seul le constructeur du parent soit appele. Quelle est l'utilite d'avoir une methode statique comme celles ci ?

    D'avance merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par nuriel2 Voir le message
    Quelle est l'utilite d'avoir une methode statique comme celles ci ?
    Initialiser des propriétés static bien-sûr

    Pour ce qui est de la cascade des constructeurs, c'est tout à fait normal de passer par le constructeur de la classe parente avant, ça ne fonctionne pas comme une méthode type "override" qui elle masquerait la méthode parente.

    Que les blocs static soient appelés avant le constructeur est également normal, ils sont associés à la classe. Pour simplifier, pour créer un objet, on "load" une classe et on appelle un constructeur. Le fait de charger la classe fait que les propriétés et méthodes static sont créées/appelées.

    C'est un peu plus clair ?

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 122
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Pour ce qui est de la cascade des constructeurs, c'est tout à fait normal de passer par le constructeur de la classe parente avant, ça ne fonctionne pas comme une méthode type "override" qui elle masquerait la méthode parente.
    On peut donc remonter jusqu'a Object ?
    Citation Envoyé par OButterlin Voir le message
    C'est un peu plus clair ?
    Ca l'est. Merci.

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

Discussions similaires

  1. probleme avec une methode static dans le body d'une jsp
    Par amadou.deme dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 19/02/2007, 08h47
  2. methode static interface
    Par samtheh dans le forum Langage
    Réponses: 3
    Dernier message: 15/10/2006, 19h25
  3. Classe interne, methode static et ajout de boutons
    Par comme de bien entendu dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 09/03/2006, 14h13
  4. Réponses: 13
    Dernier message: 15/11/2005, 15h47
  5. [Concept]Methode "static"
    Par Regis.C dans le forum Général Java
    Réponses: 5
    Dernier message: 04/01/2005, 10h10

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