Maison >Java >javaDidacticiel >En Java, peut-on déclarer une classe de niveau supérieur comme protégée ou privée ?

En Java, peut-on déclarer une classe de niveau supérieur comme protégée ou privée ?

WBOY
WBOYavant
2023-09-12 19:21:031449parcourir

En Java, peut-on déclarer une classe de niveau supérieur comme protégée ou privée ?

Non , nous ne pouvons pas déclarer une classe de niveau supérieur comme privée ou protégée. Cela peut être public ou default (aucun modificateur). S'il n'y a pas de modificateurs, il devrait avoir un accès par défaut.

Syntaxe

// A top level class
   public class TopLevelClassTest {
      // Class body
}
Si une classe de niveau supérieur est déclarée comme privée, le compilateur signalera une erreur et demandera "Le modificateur privé n'est pas autorisé ici". Cela signifie que les classes de niveau supérieur ne peuvent pas être privées, et il en va de même pour le modificateur d'accès protégé. Protégé signifie que le membre est accessible par n'importe quelle classe du même package ainsi que par les sous-classes, même si elles se trouvent dans un autre package. Les classes de niveau supérieur ne peuvent avoir que des modificateurs publics, abstraits et finaux, ou elles ne peuvent définir aucun modificateur de classe. C’est ce qu’on appelle l’accès par défaut/package. Nous pouvons déclarer la classe interne comme privée ou protégée mais cela n'est pas autorisé dans la classe externe classes.
  • Plusieurs classes de niveau supérieur peuvent être définies dans un fichier source Java, mais il peut y avoir au plus une classe publique de niveau supérieur déclaration. Le nom du fichier doit correspondre au nom de la classe publique. Déclarer une classe comme protégé
  • example

    live démonstration

    protected class ProtectedClassTest {
       int i = 10;
       void show() {
          System.out.println("Declare top-level class as protected");
       }
    }
    public class Test {
       public static void main(String args[]) {
          ProtectedClassTest pc = new ProtectedClassTest();
          System.out.println(pc.i);
          pc.show();
          System.out.println("Main class declaration as public");
       }
    }
    Dans l'exemple ci-dessus, nous pouvons déclarer la classe comme

    protected

    et elle allait dire une erreur suggérant

    Modification du symbole protégé par symbole n'est pas autorisé ici

    . Par conséquent, le code ci-dessus ne s’exécutera pas.

    Sortie

    modifier protected not allowed here
    Déclarer une classe comme privée

    Exemple

    Démo en direct

    private class PrivateClassTest {
       int x = 20;
       void show() {
          System.out.println("Declare top-level class as private");
       }
    }
    public class Test {
       public static void main(String args[]) {
          PrivateClassTest pc = new PrivateClassTest();
          System.out.println(pc.x);
          pc.show();
          System.out.println("Main class declaration as public");
       }
    }
    Dans l'exemple ci-dessus, nous pouvons déclarer la classe comme

    privée et elle

    lancera une erreur

    ,

    Le modificateur private

    n'est pas autorisé ici. Le code ci-dessus ne s'exécutera donc pas.

    Sortie

    modifier private not allowed here

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer