4 votes

Pourquoi ne pouvons-nous pas avoir des classes externes statiques

Pourquoi ne pouvons-nous pas créer des classes statiques qui sont extérieures. J'ai lu les réponses à cette question dans cette communauté mais je n'ai pas obtenu une réponse parfaite. Quelqu'un peut-il m'aider avec une réponse exacte

   static class A
    {  
        void display()
        {
            System.out.println("This is a static class");  
        }

    }

21voto

Peter Lawrey Points 229686

Les classes externes sont déjà effectivement static A static Une classe imbriquée signifie qu'elle n'a pas de référence à la classe extérieure. Une classe externe n'a déjà pas de référence implicite à une autre classe.

1voto

exabrial Points 3305

Que ferait exactement une classe statique ? Serait-elle la "même implémentation exacte dans toutes les instances" ? Pensez-y :)

1voto

MGorgon Points 1999

Parce que c'est sans intérêt et inutile. Si vous voulez avoir un objet statique, il suffit de créer une instance statique de la classe. Et si vous voulez invoquer les méthodes de la classe sans référence à son objet, rendez simplement cette méthode statique. Et ainsi vous aurez :

class A
{  
   public static void display()
   {
      System.out.println("This is a static method");  
   }
}

Vous pouvez invoquer cette méthode en A.display(); .

1voto

Ravi Thapliyal Points 19305

A classe statique imbriquée c'est simplement l'espace de noms qui fonctionne. La classe imbriquée est classée dans l'espace de noms de la classe enfermant et vous pouvez penser à la classe extérieur comme étant déjà présente à Root espace de noms de ce paquet.

Par conséquent, aucun static est nécessaire puisque la classe est déjà globale dans la classe paquet et tout au long de l'application si public .

0voto

MinecraftShamrock Points 3356

Il n'existe pas de classes statiques externes en Java. Parce que toutes les classes externes sont déjà visibles comme le ferait le modificateur static.

Mais si vous voulez dire que vous ne voulez pas avoir besoin d'une instance de la classe, vous pouvez simplement rendre toutes les méthodes et variables de la classe statiques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X