Modificadores de acceso en Java

Modificadores de acceso en Java
El modificador de acceso es una terminología orientada a objetos utilizada para definir la accesibilidad de clases, métodos y constructores. Al ser programación orientada a objetos, Java admite cuatro niveles diferentes de modificadores de acceso y cada modificador de acceso funciona en un nivel diferente. Los modificadores de acceso pueden ser uno de los siguientes, predeterminados, públicos, privados y protegidos. La selección del modificador de acceso depende del problema que va a resolver. Esta guía descriptiva demuestra la funcionalidad de los modificadores de acceso en Java.

Modificadores de acceso en Java

Esta sección proporciona una visión profunda de los modificadores de acceso en Java. Obtendrá una descripción detallada de cada modificador demostrado por un ejemplo que ilustra la funcionalidad de cada modificador de acceso.

Modificador de acceso público

Como sugiere el nombre del modificador, es menos seguro y las clases, métodos, instancias declaradas con palabras clave públicas tienen las siguientes opciones de accesibilidad:

- Se puede acceder dentro del paquete/clase, fuera del paquete/clase

Ejemplo

Paquete Newpack;
Accessmod de clase pública

Public void show ()

Sistema.afuera.println ("Bienvenido a Linuxhint!");

El código escrito anteriormente tiene la siguiente descripción:

- Se declara una clase pública y un método público que contiene una declaración de línea de impresión.

La imagen del código se proporciona aquí:

El método de clase nombrado espectáculo En el código anterior se llama en la segunda clase como se muestra a continuación:

Mod de paquete;
Importar Newpack.*;
Access de clase
Public static void main (args de cadena [])

AccessMod obj = new AccessMod ();
obj.espectáculo();

El código se describe a continuación

- el nombre del paquete nuevo de la clase se importa

- Un objeto de la clase Accessmod (clase que reside en el paquete nombrado nuevo) es creado

La imagen del código y la salida se muestra a continuación:

De la salida anterior, se concluye que los modificadores de acceso público pueden acceder a los objetos de una clase que está fuera de esa clase y paquete también.

Modificador de acceso privado

Contrariamente a la clase pública, se puede acceder a métodos/varibales privados solo dentro de la clase. No se puede acceder a un métodos/variables privados:

- fuera del paquete

- dentro del paquete (pero fuera de la clase)

Ejemplo 1: fuera del paquete

Paquete Newpack;
Class AccessMod

show vacío privado ()

Sistema.afuera.println ("Linuxhint!");

La descripción del código se proporciona a continuación:

- El método del programa se declara con un modificador privado

Ahora, el siguiente código intenta ejecutar el método de programa desde el Accessmod clase.

Mod de paquete;
Importar Newpack.*;
Access de clase
Public static void main (String Argos [])

AccessMod obj = new AccessMod ();
obj.espectáculo();

Se crea una nueva clase llamada Accesm en el paquete mod. El nuevo El paquete se importa en este paquete, ya que tenemos que crear un objeto de la clase con nombre Accessmod (Eso reside en Newpack's clase).

Desde la salida está claro que no se puede acceder a los objetos de acceso y los asociados fuera del paquete.

Ejemplo: fuera de la clase (mismo paquete)

paquete LH;
clase prim
privado void pvt ()
Sistema.afuera.println ("Linuxhint");

El código se describe como,

- Una clase llamada remilgado se crea en LH paquete. El remilgado La clase contiene un método privado nombrado pvt.

Ahora, para verificar el modificador de acceso privado, el código proporcionado a continuación se utiliza.

paquete LH;
clase segunda
public static void main (string [] main)
prim obj = new prim ();
obj.pvt ();

El paquete de ambas clases es el mismo, pero la clase llamada Second intenta crear un objeto de pvt (). El pvt () es un método en remilgado clase.

Se observa a partir de la salida que, Pvt () No se puede acceder al método debido a su modificador de acceso privado.

Modificador de acceso predeterminado

Los miembros de los datos declarados con palabras clave predeterminadas son accesibles solo dentro del mismo paquete. Se encuentra entre modificadores de acceso privados y protegidos y, por lo tanto, es más seguro que protegido y menos seguro que el privado.

Ejemplo 1: fuera del paquete

Paquete Newpack;
clase DEF
static void main (string [] args)
Sistema.afuera.println ("una clase predeterminada");

La descripción del código es la siguiente,

- Se crea una clase predeterminada nombrada Defensor y contiene el método principal

- Se ejecuta una instrucción de línea de impresión dentro del método principal

Para probar la accesibilidad de la clase predeterminada, se utilizan las siguientes líneas de código.

paquete LH;
Importar Newpack.*;
clase hábil
static void main (string [] args)
Def test = new def ();
prueba.principal();

El código se describe como,

- Importado el paquete llamado nuevo

- creó una nueva clase hábil

- creó un objeto de la clase Defensor en el método principal del hábil clase

La salida muestra que la accesibilidad del Defensor La clase debe cambiarse al público para que se acceda en una clase de otros paquetes.

Ejemplo 2: fuera de la clase (dentro del mismo paquete)

El siguiente código crea un método predeterminado para una clase nombrada remilgado.

paquete LH;
clase prim
void pub ()
Sistema.afuera.println ("modificador de acceso predeterminado");

Un método predeterminado nombrado pub() se define en la clase remilgado.

Para verificar su accesibilidad, echemos un vistazo al siguiente código.

paquete LH;
clase segunda
public static void main (string [] main)
prim obj = new prim ();
obj.pub();

Un objeto de la pub() El método se crea en otra clase (que reside en el mismo paquete).

Se observa desde la salida que el objeto del pub() El método se ejecuta correctamente y, por lo tanto, se concluye que los métodos declarados utilizando modificadores de acceso predeterminados se pueden usar dentro del mismo paquete, pero en una clase diferente.

Modificador de acceso protegido

Los métodos o miembros de datos que se declaran utilizando palabras clave protegidas son accesibles dentro de la clase o las otras clases en el mismo paquete. No se puede acceder fuera del paquete, pero una subclase de los otros paquetes puede acceder a los métodos protegidos.

Ejemplo: Uso de subclase del mismo paquete

Paquete Newpack;
Class AccessMod

show vacío protegido ()

Sistema.afuera.println ("Linuxhint!");

El método show () se declara con privilegios protegidos:

Se accede al método en el Acceso (subclase del mismo paquete donde el Accessmod mentiras) y el proceso se lleva a cabo utilizando el siguiente código:

Paquete Newpack;
Class AccessM extiende AccessMod
Public static void main (args de cadena [])

AccessMod obj = new AccessMod ();
obj.espectáculo();

La imagen de salida del código se proporciona a continuación:

Ahora, elaboremos la diferencia entre modificadores de acceso predeterminados y protegidos utilizando el siguiente ejemplo. No se puede acceder a los modificadores de acceso predeterminados mediante subclases (fuera del paquete), sin embargo, accederemos a un método protegido utilizando una subclase.

Ejemplo 2: Uso de la subclase de otros paquetes

paquete LH;
Public Class Prot
pantalla vacía protegida ()
Sistema.afuera.println ("Bienvenido a Linuxhint!");

En el código anterior, se declara un método protegido dentro de una clase que contiene una declaración de línea de impresión simple.

El código escrito a continuación creará y accederá al objeto del método protegido que se muestra en la imagen de arriba.

Paquete Newpack;
importar LH.*;
La clase ProtMod extiende Prot
Public static void main (args de cadena [])

protmod obj = new ProtMod ();
obj.mostrar();

Observarías que,

- el paquete LH se está importando al paquete nuevo

- una subclase (de Protección clase) Nombrado protmod se declara

- objeto de la clase ProtMod nombrada obj se usa para obtener el contenido del mostrar() método de Protección clase).

La salida muestra que el mostrar() método contenido dentro del Protección La clase se usa en la subclase del Protección clase.

Conclusión

Los modificadores de acceso de Java le permiten determinar el nivel de accesibilidad de métodos, clases, variables y constructores. Este artículo proporciona la funcionalidad de los modificadores de acceso que se pueden usar en Java. Los modificadores de acceso como privado, público, protegido y predeterminado se ejercen utilizando varios ejemplos. Por último, se concluye que los modificadores privados establecen la plataforma más segura, mientras que los modificadores públicos se consideran los menos seguros.