privados - palabra public en java
¿Cuál es la diferencia entre los especificadores de acceso y los modificadores de acceso? (9)
En Java, ¿ los especificadores de acceso y los modificadores de acceso son lo mismo?
Al usar el especificador de acceso definimos quién puede acceder a nuestra clase / método y variable (o lo que sea con eso usamos el especificador de acceso). básicamente el especificador de acceso de Java son cuatro tipos:
- público: - Visible para el mundo,
- privado: - Visible solo para la clase,
- protected: - Visible para el paquete y todas las subclases, y
- predeterminado: - Visible para el paquete
Pero el modificador de acceso son propiedades de una clase / método / variable. El modificador de acceso son cinco tipos
- final: para finalizar las implementaciones de clases, métodos y variables
- estático: para crear métodos y variables de clase
- Sincronización y modificadores volátiles: - que se utilizan para hilos
- Resumen: para crear clases y métodos abstractos
- transitorio
En algunos idiomas más antiguos público, privado, protegido y predeterminado como C ++ se consideran como especificadores de acceso y todo lo demás se considera como modificador de acceso, pero en Java no hay terminología para el especificador, todo está considerado por defecto como modificador. Entonces public, private, protected, default, final, abstract, static, strictfp, synchronized, native, transient y volátil son solo modificadores.
Una prueba simple es cuando compilamos el siguiente código
Prueba de clase privada {}
obtendremos un error de tiempo de compilación diciendo que el modificador privado no está permitido aquí. Esto es cierto para otros modificadores también. Quizás el compilador de java (javac) vea todo como un "modificador" solamente.
En referencia a los Sun Java Docs, ambos parecen ser los mismos:
-
Access Modifier
- Busque el
access specifier
en esta página .
Esa referencia de JDI es el único lugar que he visto usar el término "especificador de acceso" en una especificación de Java. Incluso allí, public / protected / private / package también se llaman ''modificadores''. Realmente no hay razón para usar el término ''especificador de acceso'' en Java, es claramente un error en una página de muchos miles.
Java tiene básicamente 2 tipos de modificadores:
- modificadores de acceso a Java
- modificadores java sin acceso
Los modificadores de acceso de Java y los especificadores de acceso de Java son lo mismo, que son public
, private
y protected
.
Según yo, sí, ambos términos se refieren a lo mismo y se usan indistintamente.
Técnicamente hablando, privado, público, protegido y predeterminado se tratan como especificadores de acceso. Estos tratan con quién puede ... preguntas. Los modificadores afaik son volátiles, finales, estáticos, transitorios, etc. Estos tratan sobre cómo ... aspecto.
No. "modificador de acceso" es el término oficial para private
, protected
y public
, mientras que el término "especificador de acceso" no aparece en absoluto en la especificación del lenguaje Java y es AFAIK algo no ampliamente utilizado.
"modificador de acceso" es el término oficial para uso private
, protected
y public
utilizado en la especificación del lenguaje Java . "especificador de acceso" se utiliza como sinónimo en el documento API de Java , pero esta es la primera vez que me doy cuenta. Probablemente sea mejor seguir con el término JLS.