MODIFICADORES DE VARIABLE EN JAVA
MODIFICADORES DE VARIABLE EN JAVA
Como su nombre indica, los modificadores de acceso en Java ayudan a restringir el alcance de una clase, constructor, variable, método o miembro de datos. Hay cuatro tipos de modificadores de acceso disponibles en Java:
- Default – No se requiere palabra clave
- Private
- Protected
- Public
Modificador/Acceso | Clase | Paquete | Subclase | Todos |
---|---|---|---|---|
public | Sí | Sí | Sí | Sí |
protected | Sí | Sí | Sí | No |
default | Sí | Sí | No | No |
private | Sí | No | No | No |
2. Modificador de acceso por defecto (default)
Cuando no se especifica ningún modificador de acceso para una clase, método o miembro de datos, se dice estar teniendo modificador de acceso default por defecto.
Los miembros de datos, clase o métodos que no se declaran utilizando ningún modificador de acceso, es decir, que tengan un modificador de acceso predeterminado, solo son accesibles dentro del mismo paquete.
En este ejemplo, crearemos dos paquetes y las clases en los paquetes tendrán los modificadores de acceso predeterminados e intentaremos acceder a una clase de un paquete desde otra clase del segundo paquete.
- // Programa Java para ilustrar el modificador default
- package p1;
- // La clase DemoDefault tiene modificador de acceso default
- class DemoDefault {
- void mostrar()
- {
- System.out.println("Hola Mundo!");
- }
- }
- // Programa Java para ilustrar el error
- // al usar la clase de un paquete diferente con
- // modificador default
- package p2;
- import p1.*;
- // Esta clase tiene un modificador de acceso predeterminado
- public class DemoDefaultEjecutar {
- public static void main(String args[])
- {
- //accessing class Geek from package p1
- DemoDefault obj = new DemoDefault();
- obj.mostrar();
- }
- }
Salida:
Error:(12, 9) java: cannot find symbol symbol: class DemoDefault location: class p2.DemoDefaultEjecutar
3. Modificador de acceso privado (private)
El modificador de acceso privado se especifica con la palabra clave private. Los métodos o los miembros de datos declarados como privados solo son accesibles dentro de la clase en la que se declaran.
- Cualquier otra clase del mismo paquete no podrá acceder a estos miembros.
- Las clases e interfaces no se pueden declarar como privadas (private).
En este ejemplo, crearemos dos clases A y B dentro del mismo paquete p1. Declararemos un método en la clase A como privado e intentaremos acceder a este método desde la clase B y veremos el resultado.
- // Programa Java para ilustrar el error
- // al usar la clase desde un mismo paquete
- // con modificador private
- package p1;
- class A {
- private void mostrar() {
- System.out.println("Java desde Cero");
- }
- }
- class B{
- public static void main(String[] args) {
- A obj= new A();
- //tratando de acceder al método privado de otra clase
- obj.mostrar();
- }
- }
Salida:
Error:(15, 12) java: mostrar() has private access in p1.A
4. Modificador de acceso protegido (protected)
El modificador de acceso protegido se especifica con la palabra clave protected.
- Los métodos o miembros de datos declarados como protected son accesibles dentro del mismo paquete o sub-clases en paquetes diferentes.
En este ejemplo, crearemos dos paquetes p1 y p2. La clase A en p1 es public, para acceder a ella desde p2. El método que se muestra en la clase A está protegido y la clase B se hereda de la clase A y, a continuación, se accede a este método protegido creando un objeto de clase B.
- // Programa Java para ilustrar
- // el modificador protected
- package p1;
- public class A {
- protected void mostrar(){
- System.out.println("Java desde Cero");
- }
- }
- // Programa Java para ilustrar
- // el modificador protected
- package p2;
- // importar todas las clases en el paquete p1
- import p1.*;
- public class B extends A {
- public static void main(String[] args) {
- B obj = new B();
- obj.mostrar();
- }
- }
Salida:
Java desde Cero
5. Modificador de acceso público (public)
- El modificador de acceso público tiene el alcance más amplio entre todos los demás modificadores de acceso.
- Las clases, métodos o miembros de datos que se declaran como públicos son accesibles desde cualquier lugar del programa. No hay restricciones en el alcance de los miembros de datos públicos.
- // Programa Java para ilustrar
- // el modificador public
- package p1;
- public class A {
- public void mostrar(){
- System.out.println("Java desde Cero");
- }
- }
- // Programa Java para ilustrar
- // el modificador protected
- package p2;
- // importar todas las clases en el paquete p1
- import p1.*;
- public class B extends A {
- public static void main(String[] args) {
- A obj = new A();
- obj.mostrar();
- }
- }
Salida:
Java desde Cero
6. Modificadores que no son de acceso
En Java, tenemos 7 modificadores que no son de acceso o, a veces, también llamados especificadores. Se usan con clases, métodos, variables, constructores, etc. para proporcionar información sobre su comportamiento a la JVM. Y son:
- static
- final
- abstract
- synchronized
- transient
- volatile
- native
Comentarios
Publicar un comentario