El siguiente modificador de acceso sera Default, algo enredoso, pero muy valioso de tener en cuenta.
Como veremos a continuacion este modificador va de la mano con el paquete al cual pertenece la clase.
Escenario – Declaracion en la clase
- Pueden existir un sin fin de clases con el declarador de acceso por defecto pero solo una puede existir una clase publica
- Puede referenciarse desde clases dentro mismo paquete
- Puede heredarse por clases dentro mismo paquete
- No puede referenciarse desde clases de distintos paquetes.
- No puede heredarse por clases de distintos paquetes.
ClasePublica.java
package mipaquete;
public class ClasePublica{
}
class OtraClase{
}
class OtraClaseNoPublica{
}
OtraClasePublica.java
package mipaquete;
public class OtraClasePublica {
public void invocar(){
OtraClase clase = new OtraClase();
}
}
ClaseHijaPublica.java
package mipaquete;
public class ClaseHijaPublica extends OtraClase{
}
OtraClasePublica.java
package otropaquete;
import mipaquete.ClasePublica;
public class OtraClasePublica {
public void invocar(){
OtraClase clase = new OtraClase();
}
}
OtraClasePublica.java:3: mipaquete.OtraClase is not public in mipaquete; cannot
be accessed from outside package
ClaseHijaPublica.java
package otropaquete;
import mipaquete.OtraClase;
public class ClaseHijaPublica extends OtraClase{
}
}
ClaseHijaPublica.java:3: mipaquete.OtraClase is not public in mipaquete; cannot
be accessed from outside package
Como resumen cuando omitamos el operador, y sea aplicado el operador por defecto tendremos que siempre mirar al paquete que pertenece la clase.