Para lograr la encapsulación (mediante barreras de control de acceso):
Java esos detalles deben ser controlados mediante el uso de acceso de paquete especificador, esos detalles necesita ser expuesta.
Hay cuatro tipos de caracteres de control de acceso son: privada, por defecto, protegido, público , explicar la encapsulación de los objetos, los derechos de acceso pueden descentralizarse al nivel más bajo posible, a través de ellos, mejorando así la seguridad.
Un modificador similar con un moño de todas las clases
Privado *
default * * (La razón por la que puede acceder el mismo paquete de sub-clase porque la pantalla es el mismo paquete)
protegida * * *
público * * * *
Descripción:
1, privado representan privada, sólo se puede acceder a su propia clase
2, por defecto significa que no hay símbolo de modificación, la misma clase puede tener acceso a un paquete de
3, lo que indica protegida protección, el mismo paquete de las clases y subclases de otros paquetes también puede visitar
4, la divulgación pública representa todos los paquetes pueden tener acceso a todas las clases
Nota :. "nombre de clase". "ejemplos" de modo de acceso o en la forma, con referencia a las circunstancias específicas de uso. (De uso general "ejemplo". En la forma de nombre de la clase. Miembros y métodos generalmente estáticos)
El código es el caso
package com.it.package1;
public class ClassOne {
private int privateProp;
int defaultProp;
protected int protectedProp;
public int publicProp;
void testSameClass(){
privateProp = 0;
defaultProp = 0;
protectedProp = 0;
publicProp = 0;
}
}
package com.it.package1;
public class ClassOneStatic {
private static int privateProp;
static int defaultProp;
static protected int protectedProp;
static public int publicProp;
void testSameClass(){
privateProp = 0;
defaultProp = 0;
protectedProp = 0;
publicProp = 0;
}
}
package com.it.package1;
public class ClassTwo{
void testdifferentClass() {
// new ClassOne().privateProp;
new ClassOne().defaultProp = 1;
new ClassOne().protectedProp = 1;
new ClassOne().publicProp = 1;
// ClassOneStatic.privateProp;
ClassOneStatic.defaultProp = 1;
ClassOneStatic.protectedProp = 1;
ClassOneStatic.publicProp = 1;
}
}
package com.it.package1;
public class ClassChild extends ClassOne{
void testChild() {
// privateProp = 1 ;
defaultProp = 1;
protectedProp = 1;
publicProp = 1;
}
}
package com.it.package2;
import com.it.package1.ClassOne;
import com.it.package1.ClassOneStatic;
public class ClassFour {
void testDifferentPackage(){
// new ClassOne().privateProp;
// new ClassOne().defaultProp = 1;
// new ClassOne().protectedProp = 1;
new ClassOne().publicProp = 1;
// ClassOneStatic.privateProp = 1;
// ClassOneStatic.defaultProp = 1;
// ClassOneStatic.protectedProp = 1;
ClassOneStatic.publicProp = 1;
}
}
package com.it.package2;
import com.it.package1.ClassOneStatic;
public class ClassChild extends ClassOneStatic {
void testdifferentPackageChild() {
// ClassOneStatic.privateProp = 1;
// ClassOneStatic.defaultProp = 1;
ClassOneStatic.protectedProp = 1;
ClassOneStatic.publicProp = 1;
}
}