Introducción al Paradigma Orientado a Objetos

Anuncio
Introducción
al
Paradigma
Orientado a Objetos
1
Objetos
• ¿Qué es un objeto?
Un objeto es un componente de software que contiene
variables y métodos y que es usado para modelar algún
aspecto de la “vida real”. Es una abstracción de la
realidad.
• ¿Qué es una clase?
Una clase es un plano o prototipo que define las
variables y los métodos comunes a todos los objetos de
un cierto tipo.
2
Objetos
Los objetos son representaciones (simples/complejas)
(reales/imaginarias) de cosas: reloj, avión empleado, etc.
No todo puede ser considerado como un objeto, algunas
cosas son simplemente características o atributos de los
objetos: color, velocidad, etc.
3
Objetos
Abstracción funcional
Abstracción de datos
Hay cosas que sabemos
que los coches hacen
pero no como lo hacen:
• avanzar
• parar
• girar a la dcha
• girar a la izda
Un coche tiene además
ciertos atributos:
• color
• velocidad
• tamaño
• etc...
4
Objetos
Los objetos encapsulan variables permitiendo acceso a ellas
únicamente a través de los métodos
Variables: Contenedores de valores
Métodos: Contenedores de funciones
Nombre de la Clase
------------------------------• Atributo1
• Atributo2
------------------------------• Metodo1
• Metodo2
• Metodo3
Se puede permitir o restringir su
acceso desde “afuera”
Pueden ser Públicos o Privados
Estado: representado por el contenido de sus variables
Comportamiento: definido por sus métodos
Objeto = Identidad + Estado + Comportamiento
5
Identidad
• Oid (Object Identifier)
Cada objeto posee un oid. El oid establece la identidad
del objeto y tiene las siguientes características:
• Constituye un identificador único y global para cada objeto dentro
dentro del sistema.
• Es determinado en el momento de la creación del objeto.
• Es independiente de la localización física del objeto, es decir, provee completa
independencia de localización.
• Es independiente de las propiedades del objeto, lo cual implica independencia
de valor y de estructura.
• No cambia durante toda la vida del objeto. Además, un oid no se reutiliza
aunque el objeto deje de existir.
• No se tiene ningún control sobre los oids y su manipulación resulta
resulta
transparente.
• Sin embargo, es preciso contar con algún medio para
hacer referencia a un objeto utilizando referencias del
dominio (valores de atributos).
6
Estado
• El estado evoluciona con el tiempo.
• Algunos atributos pueden ser constantes.
• El comportamiento agrupa las competencias de un objeto y
describe las acciones y reacciones de ese objeto.
• Las operaciones de un objeto son consecuencia de un
estímulo externo representado como mensaje enviado desde
otro objeto.
7
Comportamiento
• Los mensajes navegan por los enlaces, a priori en ambas
direcciones.
• La unidad de comunicación entre objetos se llama mensaje.
• Estado y comportamiento están relacionados.
• Ejemplo: no es posible aterrizar un avión si no está volando. Está
Está
volando como consecuencia de haber despegado del suelo.
• Un estímulo causará la invocación de una operación, la creación o
destrucción de un objeto o la aparición de una señal.
• Un mensaje es la especificación de un estímulo.
8
Objetos
• En UML, un objeto se representa por un rectángulo con un
nombre subrayado.
9
Objetos
• Ejemplo de varios objetos relacionados:
10
Objetos vs. Clases
Una clase es una entidad abstracta
• Es un tipo de clasificación de cosas
• Define el comportamiento y atributos de un grupo de estructura y
comportamientos similar
Un objeto es una instancia o variable de una clase
• Un objeto se distingue de otros miembros de la clase por
sus atributos.
11
Herencia
Permite definir a partir de una clase,
clase, otras clases relacionadas que
supongan una:
• Especialización de la clase dada.
(Ej. la clase Automóvil es una especialización de la clase Vehículo)
• Generalización de la clase dada.
(La clase vehículo es una generalización de la clase Automóvil)
Si definimos la clase automóvil a partir de la clase vehículo se dice:
dice:
• “automóvil" hereda las variables y métodos de "vehículo"
• “automóvil" extiende de "vehículo"
• “automóvil" es subclase de "vehículo"
• "vehículo" es superclase de “automóvil"
12
Polimorfismo
• En programación orientada a objetos, el polimorfismo se refiere a
la capacidad del lenguaje de programación de procesar objetos de
manera distinta dependiendo de su tipo.
• El polimorfismo representa en nuestro caso la posibilidad de
desencadenar operaciones distintas en respuesta a un mismo
mensaje.
• Cada subclase hereda las operaciones pero tiene la posibilidad de
de
modificar localmente el comportamiento de estas operaciones.
13
Polimorfismo
• Ejemplo: todo animal duerme, pero cada clase lo hace de
forma distinta.
14
¿Preguntas?
15
Descargar