Professional Documents
Culture Documents
Fundamentos
El proceso de abstraccin
Las aplicaciones de software tpicas, modelan el mundo real. El mundo real es complejo a simple vista y, cuando se lo observa con ms detalle, el nivel de complejidad crece. cmo modelamos este mundo tan complejo? Los humanos entendemos al mundo, construyendo modelos mentales de partes del mismo. Un modelo mental es una visin simplificada de cmo las cosas funcionan y cmo podemos interactuar con ellas. La abstraccin es uno de los mecanismos que los humanos utilizamos para combatir la complejidad La orientacin a objetos, maneja la complejidad de los problemas del mundo real, abstrayendo su conocimiento y encapsulndolo en objetos => es clave en el desarrollo de software.
Juan
Juan no necesita saber como el telefonista resolver el problema.
con el requerimiento
Telefonista
(agente apropiado)
mensaje
Juan Telefonista
Un programa orientado a objetos, est organizado como una comunidad de agentes interactuando, llamados objetos. Cada objeto cumple un rol. Cada objeto provee un servicio o ejecuta una accin, que es usada por otros miembros de la comunidad.
Algoritmos y Estructuras de Datos Taller de JAVA Prof: Lic. Laura A. Fava
Fundamentos
Un objeto (cliente, telefonista, repartidor, etc.) es una entidad que contiene informacin y operaciones relacionadas, que tiene sentido agrupar (empaquetar). Este concepto, en el contexto de POO es conocido como encapsulamiento. Comnmente los objetos son como cpsulas opacas, con una interfaz pblica y una representacin privada. Este concepto se conoce como ocultamiento de informacin (information hiding). Permite eliminar de la vista cierta informacin propia del objeto, logrando mayor nivel de abstraccin y facilitando los cambios del cdigo.
Juan emisor
Telefonista
receptor
El encapsulamiento y el ocultamiento de informacin se complementan, para aislar las diferentes partes de un sistema, permitiendo que el cdigo sea modificado, extendido y que se puedan corregir errores, sin el riesgo de producir efectos colaterales no intencionados. Los objetos ponen en prctica estos dos conceptos:
1. Se abstrae la funcionalidad y la informacin relacionada y se encapsulan en un objeto. 2. Se decide que funcionalidad e informacin, podr ser requerida por otros objetos y el resto se oculta.
Algoritmos y Estructuras de Datos Taller de JAVA Prof: Lic. Laura A. Fava
Juan
emisor
Telefonista
receptor
Una accin es iniciada cuando un objeto, el emisor, enva un mensaje a un agente responsable de la accin, el receptor. El mensaje representa el requerimiento y es acompaado por informacin adicional (argumentos) necesaria para cumplir el requerimiento. El receptor es el objeto a quien se le enva el mensaje. El receptor en respuesta al mensaje ejecutar un conjunto de acciones o mtodo para satisfacer el requerimiento.
Algoritmos y Estructuras de Datos Taller de JAVA Prof: Lic. Laura A. Fava
Mensaje (argumentos)
Telefonista
?? ?
Juan
Receptor
Juan tambin podra darle el mensaje a un hijo/un amigo y que estos se encarguen o llamar a otra pizzera
Juan
Doctor
Emisor
Emisor
Receptor
Error!!
Prof: Lic. Laura A. Fava
Todos los objetos son instancias de una clase. El mtodo invocado por un objeto en respuesta a un mensaje es determinado por la clase del objeto receptor. Una clase es un molde a partir de la cual se crean instancias con las mismas caractersticas y comportamiento.
El estado de un objeto es todo lo que el objeto conoce de si mismo y, el comportamiento es todo lo que el objeto puede hacer. Un objeto mantiene su estado en variables y su comportamiento est implementado en los mtodos de la clase a la que pertenece.
Algoritmos y Estructuras de Datos Taller de JAVA Prof: Lic. Laura A. Fava
El conocimiento de una categora ms general, es tambin aplicable a una categora mas especfica y se denomina herencia. Las clases pueden ser organizadas en jerarquas de herencia donde, las clases hijas o subclases, heredarn estado y comportamiento de las clases que se encuentran ms arriba en la jerarqua, llamadas superclases. Las subclases pueden agregar nuevas variables y mtodos y pueden cambiar el comportamiento de los mtodos heredados. Juan, es un Cliente
Algoritmos y Estructuras de Datos Taller de JAVA
+ especfico