55 votes

Pourquoi une classe de premier niveau ne peut-elle pas être statique en Java ?

Je n'ai trouvé de réponse satisfaisante nulle part.

12 votes

Si vous ne savez pas quelles réponses vous avez trouvées, vous obtiendrez probablement d'autres réponses insatisfaisantes.

1 votes

@BoltClock et bien j'ai trouvé ces réponses qui demandaient juste la raison d'une telle classe mais pas la raison pour laquelle elles ne peuvent pas être statiques coderanch.com/t/515963/java-programmer-SCJP/certification/ et coderanch.com/t/523014/java/java/Why-Class-cannot-declared-as et download.oracle.com/javase/tutorial/java/javaOO/nested.html

0 votes

Que signifie le fait qu'une classe imbriquée soit statique ? Comment cela s'applique-t-il à une classe de niveau supérieur ?

-1voto

Je suppose que vous ne comprenez pas bien si vous souhaitez voir un mot clé "static" dans une classe externe.

En bref, comment allez-vous utiliser la fonctionnalité de static sur une classe externe ?

public class Outer
{
   public static int x = 0 ; 

}

Maintenant, vous allez faire Outer.x pour accéder à la variable statique . Cela impliquerait que x partage une seule valeur à travers tous les objets de Outer.

Maintenant que nous avons éliminé ce point, quelle serait la conséquence du mot clé static dans la classe Outer ? .

-1voto

user6674097 Points 1

Nous ne pouvons pas déclarer une classe externe (de niveau supérieur) comme statique car le mot-clé static est destiné à fournir de la mémoire et à exécuter une logique sans créer d'objets, une classe n'a pas de logique de valeur directement, donc le mot-clé static n'est pas autorisé pour une classe externe.

-1voto

Vishal Sheth Points 128

Les modificateurs d'accès pris en charge pour les classes de niveau supérieur sont les suivants :

1) public

2) par défaut

3) résumé

4) finale

5) strictfp.

Raison : Classe de haut niveau

Parce que le mot-clé static est destiné à fournir de la mémoire et à exécuter la logique sans créer d'objets, une classe n'a pas de logique de valeur directement, donc le mot-clé static n'est pas autorisé pour les classes externes et surtout, comme mentionné ci-dessus, static ne peut pas être utilisé au niveau du paquet. Il est uniquement utilisé au niveau de la classe.

-3voto

Anurag Prasad Points 1
  1. Chaque fois que nous exécutons une classe, la JVM crée un objet. Tous les objets statiques sont créés dans mémoire statique et non dans la mémoire du tas. Cela signifie que nous avons le même jeu de copie pour tous les objets. Donc, si la classe supérieure est statique et que vous exécutez le pgm, il crée un objet statique et continue de se superposer à la même mémoire statique. sur la même mémoire statique, ce qui est faux.

2. nous devrions définir les membres comme statiques qui Doivent être communs à tous les objets de la classe. Puisque chaque classe est déjà commune à tous ses objets, il n'est pas nécessaire de la rendre statique. de la rendre statique pour qu'elle soit disponible à tous ses objets.

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