En la clase de hoy repasamos los tipos de encapsulamiento
que son de tres tipos:
La encapsulación es un mecanismo que consiste en organizar
datos y métodos de una estructura, conciliando el modo en que el objeto se
implementa, es decir, evitando el acceso a datos por cualquier otro medio
distinto a los especificados. Por lo tanto, la encapsulación garantiza la
integridad de los datos que contiene un objeto.
Ocultación de datos
El usuario de una clase en particular no necesita saber cómo
están estructurados los datos dentro de ese objeto, es decir, un usuario no
necesita conocer la implementación Al evitar que el usuario modifique los
atributos directamente y forzándolo a utilizar funciones definidas para
modificarlos (llamadas interfaces), se garantiza la integridad de los datos
(por ejemplo, uno puede asegurarse de que el tipo de datos suministrados cumple
con nuestras expectativas bien que los se encuentran dentro del periodo de
tiempo esperado).
La encapsulación define los niveles de acceso para elementos
de esa clase. Estos niveles de acceso definen los derechos de acceso para los
datos, permitiéndonos el acceso a datos a través de un método de esa clase en
particular, desde una clase heredada o incluso desde cualquier otra clase.
Existen tres niveles de acceso:
público: funciones de toda clase pueden acceder a los datos
o métodos de una clase que se define con el nivel de acceso público. Este es el
nivel de protección de datos más bajo..
protegido: el acceso a los datos está restringido a las
funciones de clases heredadas, es decir, las funciones miembro de esa clase y
todas las subclases.
privado: el acceso a los datos está restringido a los
métodos de esa clase en particular. Este es nivel más alto de protección de
datos.
Algunas de las propiedades de las
clases heredadas:
• Permite manipular las semejanzas entre objetos mediante una jerarquía
• Cuando una clase hereda de otra se dice que la subclase hereda de la superclase.
• Cuando la subclase hereda de la superclase, la primera hereda todos los métodos y variables de la superclase.
• Permite manipular las semejanzas entre objetos mediante una jerarquía
• Cuando una clase hereda de otra se dice que la subclase hereda de la superclase.
• Cuando la subclase hereda de la superclase, la primera hereda todos los métodos y variables de la superclase.
Supongas que tenemos una clase
llamana Persona y que tiene como atributos: nombre y edad
1
2
3
4
5
6
7
8
9
10
11
12
13
|
publicclassPersona{
privateintedad;
privateString
edad;
publicPersona(intedad,
String nombre){
this.edad
= edad;
this.nombre
= nombre;
}
publicStringdatosGenerales(){
return"la
edad es: "+ edad + " y el nombre es: "+ nombre;
}
}
|
Si necesitamos hacer mas clases que
sean tan parecidas a la clase Persona entonces es donde debemos usar la
herencia, la cual se hace de la siguiente forma.
1
2
|
publicclassEstudiante extendsPersona{
privateintcarnet;
|
Donde access es una de las tres palabras
claves: public, private o protected. El especificador access determina cuántos
elementos de la clase base son heredados por la clase derivada.
La siguiente tabla muestra
claramente los tipos de derivación:
Tipo de derivación (access) |
Miembros de la clase base | Acceso de la clase privada |
---|---|---|
Private | Private public protected |
Innaccesible private private |
Public | Private public protected |
Innaccesible public protected |
protected | Private public protected |
Innaccesible protected protected |
El tipo de derivación que se solicita cuando se crea una clase
derivada determina cómo se heredan los miembros de la clase
derivada. La tabla anterior, muestra los tres tipos de
derivación, el tipo de acceso a los miembros de la clase base y
el acceso permitido a la clase derivada.
Una derivación privada implica que:
- Los datos miembros privados heredados de una clase base son innacesibles por la clase derivada.
- Los miembros públicos y protegidos heredados de la clase base son miembros privados en la clase derivada.
Una derivación pública implica que:
- Los datos miembros privados heredados de una clase base son innacesibles por la clase derivada.
- Los miembros públicos heredados de la clase base son miembros públicos en la clase derivada.
- Los miembros protegidos heredados de la clase base son miembros protegidos en la clase derivada.
Una derivación protegida
implica que:
- Los datos miembros privados heredados de una clase base son innacesibles por la clase derivada.
- Los miembros públicos heredados de la clase base son miembros públicos en la clase derivada.
- Los miembros públicos y protegidos heredados de la clase base son miembros protegidos en la clase derivada.
Como puede verse los miembros de la clase privados son siempre
inaccesibles por una clase derivada por lo que, para acceder a ellos,
deben utilizarse las funciones miembro heredadas por la clase
derivada. Cualquier función miembro nueva que se escriba
pra la clase derivada no tendrá acceso a esos miembros, de modo
que deben utilizarse las funciones miembro heredadas de la clase base.
En la clase de hoy del dia de ayer repasamos los tipos de encapsulamiento
que son de tres tipos:
segun http://es.kioskea.net/contents/poo/encapsul.php3
Lana clase llamana Persona y que
tiene como atr
public String datosGenerales(){
return "la edad es: " + edad + " y el nombre es: " + nombre;
}
}
|
Si necesitamos hacer mas clases que sean tan parecidas a la clase
Persona entonces es donde debemos usar la herencia, la cual se hace de la
siguiemnte forma.
1
2
|
public class Estudiante extends Persona{
private int carnet;
|