Este artículo estudia principalmente contenido relacionado sobre el control de los derechos de acceso a la programación de Java, de la siguiente manera.
Para los modificadores a los que no presté atención antes, en general, las variables no se agregaron antes, uno era porque no sabía para qué era, y el otro era porque era flojo. Cuando encontré un proyecto más tarde, descubrí que todavía había una gran diferencia entre privado y público.
(1) En primer lugar, el nombre del paquete
Al usar una clase, como una clase de colección, debe presentar este paquete y luego usar la clase debajo del paquete. como:
paquete com.myown.iaiti; Public Class Print {static void print (string s) {system.out.println (s); }}Los paquetes personalizados, al presentar sus propios paquetes, puede usar el método que escribió para imprimir cadenas en el futuro. He intentado establecer la ruta de mi propio paquete en classpath antes, por lo que al compilar en otros directorios, no necesita poner el paquete en este directorio, y también puede ejecutarse normalmente, de lo contrario no se encontrará el paquete JAR.
(2) público
Público, público, en el pasado, los maestros a menudo usaban Lao Tzu como una metáfora. Esto es algo público, lo usaré para ti. Public sigue de cerca a los miembros de los datos, lo que significa que está disponible para todos.
(3) Privado
Privado, privado, mi propiedad privada, no la toque. A excepción de la clase que contiene este miembro de datos en el paquete que se puede usar, no se pueden usar otras clases. Esta parte es algo que el diseñador en sí no quiere mostrar o modificar para extraños.
Public Class Print {public static void main (string [] args) {getit g = new getit (); }} clase getit {// Tenga en cuenta que un archivo solo puede tener una clase pública. Si desea agregar público delante de //, no lo escriba en el mismo archivo que imprent private getit () {}}El constructor getit () no es visible, no es visible, se puede ver que es útil. El patrón singleton también se usa de esta manera, controlando la creación de objetos.
Aplicación del modo singleton:
Clase A {private a () {} privado estático a a = new a (); public static a getInstace () {return a; }}Otras clases no pueden crear objetos a través de nuevos, porque el constructor es modificado por privado. El propósito es que cuando esta Clase A es extremadamente compleja y consume memoria, necesito controlar estrictamente la creación de un objetos. Como hemos dado un solo caso, hablaremos sobre el caso único por cierto. He leído los escritos de algunas personas antes, es tan clásico y sorprendente.
Lo anterior es un estilo de hombre hambriento, que es ayudarlo a obtener nuevo tan pronto como llegue, y usarlo directamente cuando obtenga nuevo en el futuro. No hay problema de roscado. La desventaja es que si es inútil, será un desperdicio de recursos.
Estilo perezoso
clase pública A {private a () {} privado estático a a; public static a getInstance () {if (a == null) {return a = new a (); } else {return a; }}}Le ayudará a nuevo cuando lo use, y será nuevo cuando lo use, pero hay un problema de roscado. Si agrega sincronizado, la eficiencia se reducirá porque si la usa, uno de ellos estará ocupado.
La forma perfecta es combinar ambos:
Clase pública A {// Clase interna estática privada, la clase se cargará solo cuando haya una clase de referencia de la clase estática privada Laya {public static aa = new a (); } public static a getInStance () {return LazaA.A; }}No puedo entender esta llamada clase interna estática antes. La función es lograr una carga retrasada, porque solo se usará cuando sea nuevo. Use el método GetInstance. No existe un problema de subprocesos múltiples porque la clase estática pertenece a todos los objetos de clase externa y solo se cargará una vez. Después de instanciar la clase interna estática, es un atributo a nivel de clase, que no pertenece a un determinado objeto, pero solo se cargará una vez. De esta manera, no habrá residuos de recursos y no hay ningún problema de ineficiencia de múltiples subprocesos. A la persona que se le ocurrió este método es realmente sorprendente.
(4) protegido
Imprimir es la categoría base. A los chinos les gusta hablar sobre la categoría de padres, pero los extranjeros piensan que las subcategorías son más increíbles. La categoría base es una base o base. Protegido es la propiedad que dejé específicamente a mi hijo.
public class print {proteged void print () {} private void no puede imprimir () {}} public class printson extiende print {void get () {print (); // no se puede improntar (); Método privado privado, las subclases aún no se pueden usar}} clase pública Notson {void get () {print (); }}La subclase modificada protegida se puede obtener, entre público y privado.
(5) Permisos de acceso para la clase
Cada archivo solo puede tener una clase pública.
El nombre de clase y el nombre del archivo son los mismos.
Si no tiene una base básica, será un poco anticipado, pero después de que se mejoren los puntos de conocimiento, será fácil de entender. El control de los derechos de acceso aún depende de si desea usar su parte de su código directamente para los demás.
Resumir
Lo anterior es toda la explicación detallada del código de control para los permisos de acceso a la programación Java en este artículo, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!