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

Java Discussion :

Intérêt du static dans une classe interne


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Intérêt du static dans une classe interne
    Ce code à pour but la permutation de 2 variables
    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
    public class Permutation {
     
        static class Pair {
    int a,b;
    public Pair(int val1,int val2) {
    a=val1;
    b=val2;
    }
    public String toString() {
    return "a: " + a + " b: " + b;
    }
    public void Swap(){
    int x=b;
    b=a;
    a=x;
    }
    }
     
        public static void main(String[] args) {
     
     
        Pair p=new Pair(3,5);
          System.out.println(p);
        p.Swap();
     
        System.out.println(p);
        }
       }
    au début j'ai cru que l'utilité de statique c'est pour ne pas permettre l'instanciation de la classe mais j'ai crée un objet avec cette classe statique
    enfin je sais plus c'est quoi son intérêt ce STATIC pour les classes

  2. #2
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Dans ce cas précis, il y a 2 utilisations de static :
    - Une classe
    - Une fonction

    L'interet d'une fonction statique est de ne pas avoir besoin d'instancier la classe pour utiliser la fonction. Pas besoin de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MaClasse c = new MaClasse();
    c.maFonction();
    On peut faire :
    Dans une fonction statique, on ne peut acceder qu'aux autres fonctions/données statiques

    Les fonctions statiques sont particulierement utiles pour les fonction outils (par exemple afficher une trace).

    Lorsqu'on definie une classe B dans une classe A sans declarer B statique, B sera forcement liée à une instance de A et pourra acceder à ses données non statiques.
    Au contraire, si B est statique, elle pourra etre instanciée sans avoir besoin de classe A mais ne pourra pas accéder aux données non statiques de A.

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Bref, l'intérêt de static pour les classes imbriquées, c'est la même chose que l'intérêt de static pour tout le reste.

    - Si Pair est static, on a pas besoin d'une instance de Permutation pour s'en servir.
    - Si Pair n'est pas static, toute instance de Pair est liée à une instance de Permutation, et donc il faut commencer par en avoir une (et il y a des chances qu'elle reste là tant qu'il restera une instance de Pair qui lui soit liée).
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    donc si jai bien compris on a utilisé static ici pour ne pas s'obliger d'avoir une instance de la classe permutation

  5. #5
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par omar001 Voir le message
    donc si jai bien compris on a utilisé static ici pour ne pas s'obliger d'avoir une instance de la classe permutation
    Citation Envoyé par hwoarang
    L'interet d'une fonction statique est de ne pas avoir besoin d'instancier la classe pour utiliser la fonction.
    Donc oui.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Citation Envoyé par omar001 Voir le message
    donc si jai bien compris on a utilisé static ici pour ne pas s'obliger d'avoir une instance de la classe permutation
    Disons, pour que les instances de Permutation et les instances de Pair ne soient pas liées les unes aux autres.
    C'est un peu plus large, comme raison.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Redéfinir une méthode static dans une classe dérivée
    Par michelp3 dans le forum Général Java
    Réponses: 5
    Dernier message: 06/05/2015, 22h28
  2. Redéfinir un constructeur dans une classe interne anonyme
    Par pigpen dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 31/10/2011, 13h36
  3. variable Static dans une classe
    Par cubitus91 dans le forum Delphi
    Réponses: 3
    Dernier message: 29/11/2006, 00h07
  4. fonction static dans une class
    Par Stany dans le forum C++
    Réponses: 3
    Dernier message: 16/06/2006, 14h43
  5. [Thread] Erreur dans une classe interne
    Par totof2308 dans le forum Général Java
    Réponses: 5
    Dernier message: 03/06/2004, 08h15

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