Cet article étudie principalement le contenu lié sur le contrôle des droits d'accès à la programmation Java, comme suit.
Pour les modificateurs auxquels je n'ai pas prêté attention auparavant, généralement, des variables n'étaient pas ajoutées auparavant, l'une était parce que je ne savais pas à quoi cela servait, et l'autre était parce que j'étais paresseux. Lorsque j'ai rencontré un projet plus tard, j'ai trouvé qu'il y avait encore une grande différence entre privé et public.
(1) Tout d'abord, le nom du package
Lorsque vous utilisez une classe, comme une classe de collection, vous devez introduire ce package, puis utiliser la classe sous le package. comme:
Package com.myown.iaiti; classe publique print {static void print (string s) {System.out.println (s); }}Packages personnalisés, en introduisant vos propres packages, vous pouvez utiliser la méthode que vous avez écrite pour imprimer des chaînes à l'avenir. J'ai déjà essayé de définir le chemin de mon propre package dans ClassPath, donc lors de la compilation dans d'autres répertoires, vous n'avez pas besoin de mettre le package dans ce répertoire, et il peut également s'exécuter normalement, sinon le package JAR ne sera pas trouvé.
(2) public
Public, public, dans le passé, les enseignants ont souvent utilisé Lao Tzu comme métaphore. C'est une chose publique, je vais l'utiliser pour vous. Le public suit de près les membres de données, ce qui signifie qu'il est disponible pour tous.
(3) privé
Privé, privé, ma propriété privée, ne le touchez pas. À l'exception de la classe contenant ce membre de données dans le package qui peut être utilisé, d'autres classes ne peuvent pas être utilisées. Cette partie est quelque chose que le concepteur lui-même ne veut pas montrer ou modifier pour les étrangers.
classe publique print {public static void main (String [] args) {getit g = new Getit (); }} classe getit {// Notez qu'un fichier ne peut avoir qu'une seule classe publique. Si vous souhaitez ajouter du public devant //, ne l'écrivez pas dans le même fichier que Priv Private Getit () {}}Le constructeur getit () n'est pas visible, il n'est pas visible, on peut voir qu'il est utile. Le singleton est également utilisé de cette manière, contrôlant la création d'objets.
Application du mode singleton:
classe A {private a () {} private static a a = new a (); public static a getInStace () {return a; }}D'autres classes ne peuvent pas créer d'objets via Nouveau, car le constructeur est modifié par privé. Le but est que lorsque cette classe A est extrêmement complexe et consomme de la mémoire, je dois contrôler strictement la création d'un objet. Puisque nous avons donné un seul cas, nous parlerons du seul cas d'ailleurs. J'ai déjà lu les écrits de certaines personnes, c'est tellement classique et incroyable.
Ce qui précède est un style homme affamé, qui est pour vous aider à vous rendre nouveau dès que vous venez, et l'utiliser directement lorsque vous obtenez de nouveaux à l'avenir. Il n'y a pas de problème de filetage. L'inconvénient est que s'il est inutile, ce sera un gaspillage de ressources.
Style paresseux
classe publique a {private a () {} private static a a; public static a getInstance () {if (a == null) {return a = new a (); } else {return a; }}}Il vous aidera nouveau lorsque vous l'utiliserez, et il sera nouveau lorsque vous l'utiliserez, mais il y a un problème de filetage. Si vous ajoutez synchronisé, l'efficacité sera réduite car si vous l'utilisez, l'une d'entre elles sera occupée.
Le moyen idéal est de combiner les deux:
classe publique A {// classe intérieure statique privée, la classe ne sera chargée que lorsqu'il y a une classe privée statique de référence Lazya {public static aa = new a (); } public static a getInstance () {return Lazya.a; }}Je ne peux pas comprendre cette soi-disant classe intérieure statique auparavant. La fonction consiste à atteindre un chargement retardé, car il ne sera utilisé que lorsqu'il est nouveau. Utilisez la méthode GetInstance. Il n'y a pas de problème multi-threading car la classe statique appartient à tous les objets de classe externe et ne sera chargée qu'une seule fois. Une fois la classe intérieure statique instanciée, il s'agit d'un attribut au niveau de la classe, qui n'appartient pas à un certain objet, mais ne sera chargé qu'une seule fois. De cette façon, il n'y aura pas de déchets de ressources et il n'y a aucun problème d'inefficacité du multi-threading. La personne qui est venue avec cette méthode est vraiment incroyable.
(4) protégé
L'impression est la catégorie de base. Les Chinois aiment parler de la catégorie des parents, mais les étrangers pensent que les sous-catégories sont plus impressionnantes. La catégorie de base est une fondation ou une fondation. Protégé est la propriété que j'ai laissée spécifiquement à mon fils.
classe publique print {protected void print () {} private void ne peut pas print () {}} public class printson étend print {void get () {print (); // ne peut pas prendre (); Méthode privée privée, les sous-classes ne peuvent toujours pas être utilisées}} classe publique notson {void get () {print (); }}La sous-classe modifiée protégée peut être obtenue entre public et privé.
(5) Accéder aux autorisations pour la classe
Chaque fichier ne peut avoir qu'une seule classe publique.
Le nom de classe et le nom du fichier sont les mêmes.
Si vous n'avez pas de base de base, ce sera un peu à l'avance, mais une fois les points de connaissances améliorés, ce sera facile à comprendre. Le contrôle des droits d'accès dépend toujours de la question de savoir si vous souhaitez utiliser votre partie de votre code directement pour d'autres.
Résumer
Ce qui précède est toute l'explication détaillée du code de contrôle pour les autorisations d'accès à la programmation Java dans cet article, j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!