Paquete vs modificadores de acceso privado en Java

Cada vez que escribimos nuestras clases, debemos proporcionar cierta información sobre nuestras clases a la JVM , como si se puede acceder a esta clase desde cualquier lugar o no, si la creación de clases secundarias es posible o no, si la creación de objetos es posible o no, etc. podemos especificar esta información usando una palabra clave apropiada en Java llamada modificadores de acceso. Por lo tanto, los modificadores de acceso se utilizan para establecer la accesibilidad de clases, métodos y otros miembros.

Analicemos ambos modificadores en profundidad individualmente. 

  • Modificador de acceso al paquete (predeterminado)
  • Modificador de acceso privado

Modificador 1: Modificador de acceso al paquete (predeterminado)  

Una clase, método o variable se declara sin ningún modificador de acceso, entonces se considera que tiene un modificador de acceso de paquete (predeterminado). El modificador predeterminado actúa como público dentro del mismo paquete y actúa como privado fuera del paquete. Si una clase se declara como predeterminada, podemos acceder a esa clase solo dentro del paquete actual, es decir, desde el paquete externo no podemos acceder a ella. Por lo tanto, el modificador de acceso predeterminado también se conoce como modificador de acceso a nivel de paquete. Una regla similar también se aplica a las variables y métodos en Java.

Ejemplo:

Java

// Java Program to illustrate Package Level Access Modifier
   
// Importing utility classes
// Importing input output classes
import java.io.*;
import java.util.*;
   
// Main Class
class GFG {
   
    // Declaring default variables that is
    // having no access modifier
    String s = "Geeksfor";
    String s1 = "Geeks";
   
    // Method 1
    // To declare a default method
    String fullName()
    {
        // Concatenation of strings
        return s + s1;
    }
   
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
   
        // Creating an object of main class(GFG)
        // in the main() method
        GFG g = new GFG();
   
        // Calling method1 using class instance
        // and printing the concatenation of strings
        System.out.println(g.fullName());
    }
}

Producción:

GeeksforGeeks

Modificador 2: Modificador de acceso privado

Este modificador no se aplica a clases o interfaces de nivel superior. Solo es aplicable a constructores, métodos y campos dentro de las clases. Si una variable, un método o un constructor se declaran privados, solo podemos acceder a ellos desde dentro de la clase, es decir, desde fuera de la clase, no podemos acceder a ellos.

Ejemplo:

Java

// Java Program to showcase Private Access Modifier
 
// Import required packages
import java.io.*;
import java.util.*;
 
// Class 1
// Helper class
class A {
 
    // Method
    private void m1()
    {
 
        // Print statement whenever the method is called
        System.out.println("GFG");
    }
}
 
// Class 2
// Main class
class B {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an object of type class A
        // in main() method
        A a = new A();
 
        // Now accessing the method m1() of
        // class created above
        a.m1();
    }
}

Producción:

Finalmente, después de hacerlo con ambos, concluyamos las diferencias evidentes entre ellos, que son las siguientes:

 Modificador de acceso a paquetes Modificador de acceso privado
Este modificador se aplica tanto a las clases de nivel superior como a las interfaces. Este modificador no se aplica tanto a las clases de nivel superior como a las interfaces.
Se puede acceder a los miembros del paquete desde la clase secundaria del mismo paquete. No se puede acceder a los miembros privados desde la clase secundaria del mismo paquete.
Se puede acceder a los miembros del paquete desde una clase no secundaria del mismo paquete. No se puede acceder a los miembros privados desde una clase no secundaria del mismo paquete.
El modificador de paquete es más accesible que el modificador privado. El modificador privado está más restringido que un modificador de paquete.
El modificador de paquetes proporciona el nivel más bajo de encapsulación en Java. Un modificador privado proporciona un mayor nivel de encapsulación en Java.

Publicación traducida automáticamente

Artículo escrito por mroshanmishra0072 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *