16/01/2004, 20:21
|
| | | Fecha de Ingreso: julio-2002 Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 6 meses Puntos: 10 | |
Partamos de un consepto muy basico, un lebguage para que sea orientado a objetos POO debe cumplir 4 requisitos ecenciales:
-debe poseer abstracción
-debe soportar la herencia
-debe poseer encampsulamiento
-debe poseer polimorfismo
El tercer requisito nombrado aqui es lo refernte al po que a los metodos clases o variables le decimos cual sera su alcance. Veamos esto, cuando se programan objetos, estos son instancias de una plantilla en este caso llamadas clases, estas tienen la funcionalidad de enviarse mensajes entre ellas para poder inter actuar, pero lo que hace importante este consepto de encapsulación es que una clase no tiene por que saber como funciona otra clase, a ella solo le importa entregarle lo que necesita y que esta le entregue los resultados y viseversa, al encapsular los datos nos aseguramos de que estos no podran ser manipulados por clases que no lo deciemos.
Veamos un ejemplo pequeño.
class Auto {
int numRuedas;
}
si bien esta clase es correcta, no es optima, pues cualquier clase podria manipular el dato del numero de ruedas simplemente con hacer
Auto auto = new Auto();
auto.numRuedas = 5;
y lo mas seguro es que no sea lo deceado, en este caso debemos ocultar ese dato a las demas clases y hacer un metodo que asigne el numero de ruedas, por ejemplo
class Auto {
private int numRuedas;
public void asignarRuedas(int r) {
numRuedas = r;
}
}
de este modo ya no podriamos hacer lo que hicimos anteriromente de llegar y asignar lo datos a tontas y a locas, sino que la clase nos obliga a ocupar su metodo, es decir
auto.asignarRuedas(5);
De cualquier forma, si estas recien comenzando con la POO hay muchas cosas que te pareceran absurdas y complicadas en un principio, pero a medida que tu experiencia avance te iras dando cuenta que son esas cosas absurdas las que te lo hacen muy facil y poderoso.
Saludos
__________________ se despide hasta la proxima
Gonzalo Castillo |