access modifiers java tutorial with examples
Este video tutorial explica qué son los modificadores de acceso en Java y cómo usar los modificadores de acceso predeterminados, públicos, protegidos y privados con la ayuda de ejemplos:
En Java, tenemos clases y objetos. Estas clases y objetos están contenidos en un paquete. Además, las clases pueden tener clases anidadas, métodos, variables, etc. Como Java es un lenguaje de programación orientado a objetos, tenemos que seguir la encapsulación en la que ocultamos los detalles no deseados.
Java proporciona entidades llamadas 'modificadores de acceso o especificadores de acceso' que nos ayudan a restringir el alcance o la visibilidad de un paquete, clase, constructor, métodos, variables u otros miembros de datos. Estos modificadores de acceso también se denominan “Especificadores de visibilidad”.
Al usar los especificadores de acceso, un método de clase particular o una variable puede restringirse al acceso u ocultarse de las otras clases.
=> Consulte TODOS los tutoriales de Java aquí.
cuales son las etapas del sdlc
Lo que vas a aprender:
- Video tutorial sobre modificadores de acceso en Java
- Modificadores de acceso en Java
- Tipos de modificadores de acceso en Java
- Conclusión
Video tutorial sobre modificadores de acceso en Java
Modificadores de acceso en Java
Los especificadores de acceso también determinan a qué miembros de datos (métodos o campos) de una clase pueden acceder otros miembros de datos de clases o paquetes, etc. Para garantizar la encapsulación y la reutilización, estos especificadores / modificadores de acceso son una parte integral de la programación orientada a objetos.
Los modificadores en Java son de dos tipos:
# 1) Modificadores de acceso
Los modificadores de acceso en Java nos permiten establecer el alcance, la accesibilidad o la visibilidad de un miembro de datos, ya sea un campo, un constructor, una clase o un método.
# 2) Modificadores sin acceso
Java también proporciona especificadores de no acceso que se utilizan con clases, variables, métodos, constructores, etc. Los especificadores / modificadores de no acceso definen el comportamiento de las entidades a la JVM.
Algunos de los especificadores / modificadores de no acceso en Java son:
- estático
- final
- resumen
- transitorio
- volátil
- sincronizado
- nativo
Hemos cubierto palabras clave estáticas, sincronizadas y volátiles en nuestros tutoriales anteriores. Cubriremos los otros modificadores sin acceso en nuestros futuros tutoriales, ya que están más allá del alcance de este tutorial.
Tipos de modificadores de acceso en Java
Java proporciona cuatro tipos de especificadores de acceso que podemos usar con clases y otras entidades.
Estos son:
# 1) Predeterminado: Siempre que no se especifica un nivel de acceso específico, se asume que es 'predeterminado'. El alcance del nivel predeterminado está dentro del paquete.
# 2) Público: Este es el nivel de acceso más común y siempre que se usa el especificador de acceso público con una entidad, esa entidad en particular es accesible desde dentro o fuera de la clase, dentro o fuera del paquete, etc.
# 3) Protegido: El nivel de acceso protegido tiene un alcance que está dentro del paquete. También se puede acceder a una entidad protegida fuera del paquete a través de una clase heredada o una clase secundaria.
# 4) Privado: Cuando una entidad es privada, no se puede acceder a esta entidad fuera de la clase. Solo se puede acceder a una entidad privada desde dentro de la clase.
Podemos resumir los modificadores de acceso en la siguiente tabla.
Especificador de acceso | Dentro de la clase | Paquete interior | Subclase de paquete externo | Paquete exterior |
---|---|---|---|---|
Privado | sí | No | No | No |
Defecto | sí | sí | No | No |
Protegido | sí | sí | sí | No |
Público | sí | sí | sí | sí |
A continuación, analizaremos cada uno de estos especificadores de acceso en detalle.
Especificadores de acceso predeterminados
Un modificador de acceso predeterminado en Java no tiene una palabra clave específica. Siempre que no se especifique el modificador de acceso, se asume que es el predeterminado. Las entidades como clases, métodos y variables pueden tener un acceso predeterminado.
Una clase predeterminada es accesible dentro del paquete, pero no es accesible desde fuera del paquete, es decir, todas las clases dentro del paquete en el que se define la clase predeterminada pueden acceder a esta clase.
De manera similar, también se puede acceder a un método o variable predeterminado dentro del paquete en el que están definidos y no fuera del paquete.
El siguiente programa demuestra el Modificador de acceso predeterminado en Java.
|_+_|Producción:
En el programa anterior, tenemos una clase y un método dentro de él sin ningún modificador de acceso. Por lo tanto, tanto la visualización de clases como la de métodos tienen acceso predeterminado. Luego vemos que en el método, podemos crear directamente un objeto de la clase y llamar al método.
Modificador de acceso público
Una clase o un método o un campo de datos especificado como 'público' es accesible desde cualquier clase o paquete en el programa Java. La entidad pública es accesible tanto dentro como fuera del paquete. En general, el modificador de acceso público es un modificador que no restringe la entidad en absoluto.
|_+_|Producción:
Especificador de acceso protegido
El especificador de acceso protegido permite el acceso a entidades a través de subclases de la clase en la que se declara la entidad. No importa si la clase está en el mismo paquete o en un paquete diferente, pero siempre que la clase que está intentando acceder a una entidad protegida sea una subclase de esta clase, la entidad es accesible.
Tenga en cuenta que una clase y una interfaz no se pueden proteger, es decir, no podemos aplicar modificadores protegidos a clases e interfaces.
El modificador de acceso protegido se usa generalmente en las relaciones entre padres e hijos.
El siguiente programa demuestra el uso del modificador de Acceso protegido en Java.
|_+_|Producción:
Modificador de acceso privado
El modificador de acceso 'privado' es el que tiene el nivel de accesibilidad más bajo. Los métodos y campos que se declaran como privados no son accesibles fuera de la clase. Solo son accesibles dentro de la clase que tiene estas entidades privadas como miembros.
Tenga en cuenta que las entidades privadas ni siquiera son visibles para las subclases de la clase. Un modificador de acceso privado asegura la encapsulación en Java.
Algunos puntos a tener en cuenta con respecto al Modificador de acceso privado.
- El modificador de acceso privado no se puede utilizar para clases e interfaces.
- El alcance de las entidades privadas (métodos y variables) se limita a la clase en la que se declaran.
- Una clase con un constructor privado no puede crear un objeto de la clase desde ningún otro lugar como el método principal. (Se han explicado más detalles sobre los constructores privados en nuestro tutorial anterior).
El siguiente programa Java utiliza un Modificador de acceso privado.
|_+_|Producción:
El programa anterior da un error de compilación ya que estamos intentando acceder a miembros de datos privados usando el objeto de clase.
Pero hay un método para acceder a las variables de miembros privados. Este método utiliza getters y setters en Java. Por tanto, proporcionamos un método get público en la misma clase en la que se declara la variable privada para que el captador pueda leer el valor de la variable privada.
De manera similar, proporcionamos un método de establecimiento público que nos permite establecer un valor para la variable privada.
El siguiente programa Java demuestra el uso de métodos getter y setter para variables privadas en Java.
|_+_|Producción:
El programa anterior tiene una clase con una variable de cadena privada. Proporcionamos un método de miembro público getName que devuelve el valor de la variable privada. También proporcionamos un método setName público en la clase que toma un String como argumento y lo asigna a la variable privada.
Como ambos métodos son públicos, podemos acceder fácilmente a ellos utilizando el objeto de la clase. De esta forma podemos superar el error de compilación que aparece cada vez que intentamos acceder a los datos privados de los miembros de la clase.
Preguntas frecuentes
P # 1) ¿Cuántos modificadores de acceso hay en Java?
Responder: Java proporciona cuatro modificadores, es decir, predeterminado, público, protegido y privado.
algoritmo de árbol de decisión en minería de datos
P # 2) ¿Qué son los modificadores de acceso y los modificadores de no acceso en Java?
Responder: Los modificadores de acceso definen la visibilidad o el alcance de una entidad de programa como una clase o un método o una variable o un constructor. Los modificadores de no acceso definen el comportamiento de una entidad. Por ejemplo, un método o bloque sincronizado indica que puede operar en un entorno de subprocesos múltiples, una variable final indica que es una constante.
P # 3) ¿Por qué son importantes los especificadores de acceso?
Responder: Los modificadores especifican qué clase puede acceder a qué otras clases, métodos o variables. Utilizando especificadores de acceso podemos limitar el acceso de varias clases, métodos, constructores y variables y también asegurar la encapsulación y reutilización de las entidades Java.
P # 4) ¿Qué modificadores no se utilizan para la clase?
Responder: Los modificadores Protegido y Privado no se utilizan para una clase.
P # 5) ¿Qué son los modificadores sin acceso?
Responder: Los modificadores que definen el comportamiento de entidades como clase, método o variables con las que están asociados son modificadores sin acceso. Como sugiere el nombre, no especifican el acceso. Java proporciona varios modificadores de no acceso como estático, final, sincronizado, volátil, abstracto, etc.
Más sobre modificadores de visibilidad
Java proporciona muchos modificadores para acceder a la variable, los métodos y los constructores.
Hay 4 tipos de variables de acceso en Java:
- Privado
- Público
- Defecto
- Protegido
# 1) Privado
Si una variable se declara como privada, entonces se puede acceder a ella dentro de la clase. Esta variable no estará disponible fuera de la clase. Entonces, los miembros externos no pueden acceder a los miembros privados.
Nota: Las clases y las interfaces no pueden ser privadas.
# 2) Público
Todas las demás clases del proyecto pueden acceder a los métodos / variables con modificadores públicos.
# 3) Protegido
Si una variable se declara como protegida, entonces se puede acceder a ella dentro de las mismas clases de paquete y subclase de cualquier otro paquete.
Nota: El modificador de acceso protegido no se puede utilizar para clases e interfaces.
# 4) Modificador de acceso predeterminado
Si una variable / método se define sin ninguna palabra clave modificadora de acceso, entonces tendrá un acceso modificador predeterminado.
Modificadores de acceso | Visibilidad |
---|---|
Público | Visible para todas las clases. |
Protegido | Visible para las clases incluidas en el paquete y las subclases de otro paquete. |
Sin modificador de acceso (predeterminado) | Visible para las clases con el paquete |
privado | Visible con en la clase. No es accesible fuera de la clase. |
Clase de demostración:
|_+_|
Accediendo a los miembros de la clase en otra clase:
|_+_|
Producción:
Accediendo a los miembros públicos:
|_+_|Producción:
cómo leer un archivo .bin
Poli
Puntos importantes:
- Los especificadores de acceso definen la visibilidad de la clase.
- Si no se menciona ninguna palabra clave, ese es el modificador de acceso predeterminado.
- Cuatro modificadores en Java incluyen público, privado, protegido y predeterminado.
- Las palabras clave privadas y protegidas no se pueden utilizar para clases e interfaces.
Conclusión
En este tutorial, exploramos los modificadores de acceso en Java en detalle. Java proporciona cuatro tipos de modificadores de acceso o especificadores de visibilidad, es decir, predeterminado, público, privado y protegido. El modificador predeterminado no tiene ninguna palabra clave asociada.
Cuando una clase, método o variable no tiene un especificador de acceso asociado, asumimos que tiene acceso predeterminado. El modificador de acceso público permite acceder a todo, ya sea dentro o fuera de la clase o paquete. No hay límite de acceso en el caso del modificador público.
El especificador de visibilidad protegida permite el acceso solo a las subclases que heredan la clase en la que se declaran los miembros protegidos. El modificador de acceso privado permite que la menor accesibilidad con los miembros de datos privados sea accesible solo dentro de la clase.
Los modificadores limitan el alcance de los miembros de datos como clases, constructores, métodos y variables y definen el límite en cuanto a qué clases o paquetes pueden acceder a ellos. Los especificadores de acceso fomentan la encapsulación y la reutilización en Java. Tenga en cuenta que las clases y la interfaz no se pueden proteger ni ser privadas.
=> Visite aquí para aprender Java desde cero.
Lectura recomendada
- Tutorial de reflexión de Java con ejemplos
- Tutorial de JAVA para principiantes: más de 100 tutoriales prácticos en vídeo de Java
- Introducción al lenguaje de programación Java - Tutorial en vídeo
- Tutorial de Java SWING: contenedor, componentes y manejo de eventos
- Tutorial Java String con String Buffer y String Builder
- Implementación de Java: creación y ejecución de un archivo JAR de Java
- Máquina virtual Java: cómo JVM ayuda a ejecutar aplicaciones Java
- Tutorial de Java Collections Framework (JCF)