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 :

Avantage et inconvénient méthode static?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut Avantage et inconvénient méthode static?
    Bonjour, je m'intérroge sur les avantages et les inconvénients de déclarer une méthode static?

    Par exemple, prennons cette méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    static public boolean isEmpty(List<String> liste) 
    {
       if (liste == null) 
               return true;
       if (liste.size() == 0) 
               return true;
       return false;
    }
    Quel serait l'intérêt de la déclarer static?

    Ce que j'ai compris de déclarer static c'est que la méthode sera globale à toute les instances de la classe mais j'ai du mal à bien comprendre.

    Au final, est-ce un avantage ou un inconvénient de la déclarer static?

    Merci de vos réponses.
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    À la limite c'est pas franchement une question d'avantages et inconvénients, c'est juste que c'est pas du tout la même chose.

    Mais si tu y tiens, on pourrait citer ça :

    Avantage :
    - pas besoin d'instancier ou de se procurer une instance d'objet de la classe pour appeler une méthode statique de cette classe. (C'est le cas de ton exemple. Si ta méthode n'était pas statique, tu ne pourrais pas t'en servir sans instancier un objet totalement inutile.)

    Inconvénients :
    - n'a pas d'instance d'objet liée à elle, donc si on veut agir sur un objet de cette classe, il faut lui en passer un en paramètre (du coup c'est un peu con, non ?)
    - Pas d'instance d'objet => pas de notion de polymorphisme.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Par défaut
    Comme disait thelvin , c'est pas tellement en terme d'avantages ou d'inconvénients, mais en terme de fonctionnalités. Par exemple tu ne peux pas t'en servir dans ton main si ta méthode n'est pas static.
    Les static fonctionnent avec les static

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    les méthode statiques peuvent appeler des méthodes aussi bien statiques que non statiques. Une méthode statique s'utilise sans instance, une méthode d'instance ("non-statique") s'utilise sur une instance et a donc une référence vers l'instance (via le mot clé this).

  5. #5
    Membre éprouvé

    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Mars 2011
    Messages : 115
    Par défaut Reponse au Static
    Avec la méthode statique, tu n'a pas besoin de créer manuellement des objets pour appeler la méthode. Il suffit juste d'appeler le nom de la classe suivi de la méthode statique

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 132
    Par défaut
    Si je peux rajouter ma petite pierre à l'édifice, les méthodes statiques ne sont pas à utiliser "partout" mais elles peuvent servir dans quelques cas particuliers de classes dites "utilisataires". Si tu fais du Integer.parseInt() ou du String.valueOf() par exemple...

    PS: J'ai déjà vu du code ou quasiment toutes les méthodes de toutes les classes étaient déclarées "static". A voir que certains ne doivent pas trop savoir à quoi sert le constructeur.

  7. #7
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut
    Ok, ca répond à ma question, je mets le topic en résolu et merci de vos réponses.
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

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

Discussions similaires

  1. [2TUP] Avantages et inconvénients de la méthode 2TUP
    Par solawe dans le forum xUP
    Réponses: 3
    Dernier message: 23/10/2008, 22h34
  2. Réponses: 9
    Dernier message: 12/04/2007, 17h08
  3. [FLASH MX2004] [AS2] Classe méthodes static
    Par bolo dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 16/12/2004, 18h26
  4. [debutant] Méthode static
    Par iago dans le forum Langage
    Réponses: 12
    Dernier message: 25/11/2004, 17h09
  5. thread et méthodes static
    Par sylpichard dans le forum MFC
    Réponses: 3
    Dernier message: 02/06/2004, 17h12

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