Cuando un miembro de clase (atributo, método o constructor) no tiene un modificador explícito como public
, protected
o private
, Java asigna automáticamente el acceso package-private. Esto significa que:
public
, pero más flexible que private
.
// Clase sin modificador de acceso (por defecto package-private)
class MiClase {
int atributo; // Package-private por defecto
void metodo() {
System.out.println("Método accesible dentro del paquete");
}
}
package paquete1;
class ClaseA {
void mostrarMensaje() {
System.out.println("Acceso package-private");
}
}
package paquete2;
import paquete1.ClaseA; // Error: ClaseA no es accesible fuera de su paquete
public class ClaseB {
public static void main(String[] args) {
// ClaseA obj = new ClaseA(); // Esto generaría un error de compilación
}
}
Jorge García
Fullstack developer