Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Modificadores de acceso Java

Modificadores de acceso Java

En este tutorial, aprenderemos sobre el modificador de acceso de Java, sus tipos y cómo usarlos con la ayuda de ejemplos.

¿Qué son los modificadores de acceso?

En Java, los modificadores de acceso se utilizan para establecer la accesibilidad (visibilidad) de clases, interfaces, variables, métodos, constructores, miembros de datos y métodos de establecimiento. Por ejemplo,

class Animal {
    public void method1() {...}

   private void method2() {...}
}

En el ejemplo anterior, hemos declarado 2 métodos:método1() y método2(). Aquí,

Tenga en cuenta la palabra clave public y private . Estos son modificadores de acceso en Java. También se conocen como modificadores de visibilidad.

Nota :No puede establecer el modificador de acceso de los métodos getters.


Tipos de modificador de acceso

Antes de conocer los tipos de modificadores de acceso, asegúrese de conocer los paquetes de Java.

Hay cuatro palabras clave modificadoras de acceso en Java y son:

Modificador Descripción
Predeterminado las declaraciones solo son visibles dentro del paquete (paquete privado)
Privado las declaraciones son visibles solo dentro de la clase
Protegido las declaraciones son visibles dentro del paquete o todas las subclases
Público las declaraciones son visibles en todas partes

Modificador de acceso predeterminado

Si no especificamos explícitamente ningún modificador de acceso para clases, métodos, variables, etc., entonces se considera por defecto el modificador de acceso predeterminado. Por ejemplo,

package defaultPackage;
class Logger {
    void message(){
        System.out.println("This is a message");
    }
}

Aquí, el Registrador class tiene el modificador de acceso predeterminado. Y la clase es visible para todas las clases que pertenecen al defaultPackage paquete. Sin embargo, si intentamos usar el Logger class en otra clase fuera de defaultPackage, obtendremos un error de compilación.


Modificador de acceso privado

Cuando se declaran variables y métodos private , no se puede acceder a ellos fuera de la clase. Por ejemplo,

class Data {
    // private variable
    private String name;
}

public class Main {
    public static void main(String[] main){

        // create an object of Data
        Data d = new Data();

        // access private variable and field from another class
        d.name = "Programiz";
    }
}

En el ejemplo anterior, hemos declarado una variable privada llamada nombre y un método privado llamado display() . Cuando ejecutemos el programa, obtendremos el siguiente error:

Main.java:18: error: name has private access in Data
        d.name = "Programiz";
         ^

El error se genera porque estamos intentando acceder a la variable privada y al método privado de los Data clase de Principal clase.

Quizás se pregunte qué pasa si necesitamos acceder a esas variables privadas. En este caso, podemos usar el método getters y setters. Por ejemplo,

class Data {
    private String name;

    // getter method
    public String getName() {
        return this.name;
    }
    // setter method
    public void setName(String name) {
        this.name= name;
    }
}
public class Main {
    public static void main(String[] main){
        Data d = new Data();

        // access the private variable using the getter and setter
        d.setName("Programiz");
        System.out.println(d.getName());
    }
}

Salida :

The name is Programiz

En el ejemplo anterior, tenemos una variable privada llamada nombre . Para acceder a la variable desde la clase externa, hemos utilizado métodos:getName() y setName() . Estos métodos se denominan getter y setter en Java.

Aquí, hemos utilizado el método setter (setName() ) para asignar valor a la variable y el método getter (getName() ) para acceder a la variable.

Hemos utilizado this palabra clave dentro de setName() para referirse a la variable de la clase. Para obtener más información sobre esta palabra clave, visite Java esta palabra clave.

Nota :No podemos declarar clases e interfaces privadas en Java. Sin embargo, las clases anidadas se pueden declarar privadas. Para obtener más información, visite Java Nested and Inner Class.


Modificador de acceso protegido

Cuando se declaran métodos y miembros de datos protected , podemos acceder a ellos tanto dentro del mismo paquete como desde subclases. Por ejemplo,

class Animal {
    // protected method
    protected void display() {
        System.out.println("I am an animal");
    }
}

class Dog extends Animal {
    public static void main(String[] args) {

        // create an object of Dog class
        Dog dog = new Dog();
         // access protected method
        dog.display();
    }
}

Salida :

I am an animal

En el ejemplo anterior, tenemos un método protegido llamado display() dentro del Animal clase. El Animal la clase es heredada por el Dog clase. Para obtener más información sobre la herencia, visite Herencia de Java.

Luego creamos un objeto perro del Perro clase. Usando el objeto intentamos acceder al método protegido de la clase principal.

Dado que se puede acceder a los métodos protegidos desde las clases secundarias, podemos acceder al método de Animal clase del Perro clase.

Nota :No podemos declarar clases o interfaces protected en Java.


Modificador de acceso público

Cuando se declaran métodos, variables, clases, etc. public , entonces podemos acceder a ellos desde cualquier lugar. El modificador de acceso público no tiene restricción de alcance. Por ejemplo,

// Animal.java file
// public class
public class Animal {
    // public variable
    public int legCount;

    // public method
    public void display() {
        System.out.println("I am an animal.");
        System.out.println("I have " + legCount + " legs.");
    }
}

// Main.java
public class Main {
    public static void main( String[] args ) {
        // accessing the public class
        Animal animal = new Animal();

        // accessing the public variable
        animal.legCount = 4;
        // accessing the public method
        animal.display();
    }
}

Salida :

I am an animal.
I have 4 legs.

Aquí,


Modificadores de acceso resumidos en una figura

Los modificadores de acceso se utilizan principalmente para la encapsulación. Puedo ayudarnos a controlar qué parte de un programa puede acceder a los miembros de una clase. Para que se pueda prevenir el mal uso de los datos. Para obtener más información sobre la encapsulación, visite Encapsulación de Java.


Java

  1. Modificadores de acceso de C#
  2. Operadores Java
  3. Comentarios Java
  4. Java para cada bucle
  5. Cadenas Java
  6. Interfaz Java
  7. Clase anónima de Java
  8. Prueba de Java con recursos
  9. Anotaciones Java
  10. Aserciones de Java
  11. Java Vector