M.S.C. Ivette Hernández Dávila 1. ¿Qué es un objeto? Ejemplo: Si vamos a un aeropuerto. Éstos...
-
Upload
maria-carmen-pereyra-roldan -
Category
Documents
-
view
219 -
download
0
Transcript of M.S.C. Ivette Hernández Dávila 1. ¿Qué es un objeto? Ejemplo: Si vamos a un aeropuerto. Éstos...
1
Introducción a la Programación Orientada a Objetos (POO)
M.S.C. Ivette Hernández Dávila
2
Propiedades y comportamiento de los objetos
¿Qué es un objeto?• Ejemplo: Si vamos a un aeropuerto.
• Éstos objetos tienen propiedades o atributos en común: poseen motor, ruedas y asientos, pero también se diferencian; es decir, tienen un comportamiento propio.
3
Definición de Objeto
Entidad compleja provista de propiedades (datos, atributos) y comportamiento (funcionalidad, métodos).
• Cada objeto expone una interfaz a otros objetos que especifica cómo éstos pueden interactuar con él.
• Esta interfaz está dada por un conjunto de métodos; así es como la interfaz del automóvil estará formada por los métodos “arranca”, “frena”, “dobla”, etc., a través de los cuales podemos interactuar con el objeto.
4
Representación del objeto Auto
Auto
motorruedasasientos
arranca()frena()dobla()
nombre del objeto
atributos
métodos
• El comportamiento es exclusivo del objeto; si bien algunos objetos a simple vista son iguales, internamente pueden ser muy distintos.• Esto se conoce como encapsulamiento: los objetos presentan la misma interfaz pero ocultan información de su funcionamiento.
5
Encapsulamiento
El encapsulamiento protege también al objeto de usos indebidos e inapropiados. El automóvil utilizará otros mecanismos para llevar a cabo su interfaz, como, por ejemplo, abrir válvulas, mover pistones, etc., que no les permitirá usar a otros objetos.
Auto
motorruedasasientos
arranca()frena()dobla()
abrirValvulas()moverPistones()
Conductor
6
Herencia
• Cuando definimos un objeto lo hacemos en función de otros objetos conocidos.
• En el ejemplo del automóvil, podría decir “es como un taxi, pero más chico”, o “es como una moto, pero tiene cuatro ruedas”.
• Sin darnos cuenta hacemos clasificaciones.
Esto se conoce como herencia, y sirve para no tener que definir comportamientos de forma repetitiva.
7
Ejemplo
• Tendremos un objeto transporte, que tendrá propiedades como cantidad de pasajeros, cantidad de puertas, etc., y métodos como arranca, frena y dobla.
• De esta manera definiríamos un automóvil como un transporte, agregando las particularidades del automóvil que no estén definidas en transporte.
• Al agregar el objeto avión definido como un transporte, heredará de éste las propiedades (cantidad de pasajeros, cantidad de puertas) y los métodos (anda, frena y dobla).
8
Polimorfismo
• Notamos que no es lo mismo hacer andar un automóvil que un avión, de forma tal que necesitamos agregar el método arranca en automóvil, para que ruede, y en avión para que vuele.
Esto se denomina polimorfismo, y nos permite tener muchas formas de comportamiento; o sea que la referencia al método arranca producirá el comportamiento correcto según el objeto al que se lo esté ordenando.
9
Comunicación entre los objetos
• Para ordenarle a un objeto que haga algo, debemos mandarle un mensaje. A través de los mensajes establecemos la comunicación entre los objetos de forma tal que les ordenamos ejecutar un método con algunos parámetros.
10
Árbol de Jerarquía de herencia
• Encontramos una nueva agrupación de nivel superior.
• En resumen, los objetos se agrupan en clases, y las clases, en árboles, siempre y cuando reflejen un comportamiento común.
Transporte
11
Árbol de Jerarquía de composición
• El automóvil, aparte de ser un objeto y además de ser un transporte, también está compuesto por más objetos con comportamientos distintos.
• Se denomina jerarquía de composición, y sirve para representar uno o varios objetos que están dentro de otro que los contiene.
12
Instancia
• Si tenemos un solo objeto automóvil, no significa que nuestro programa podrá tener un solo automóvil.
• El concepto de instancia, nos permite crear la cantidad de automóviles que deseemos.
• Por ejemplo, si nuestro objeto automóvil tiene una propiedad color, podemos tener instancias de automóvil con la propiedad color en rojo, azul o verde.
• Para lograr esto, cada objeto deberá tener un método, que nos permita crear una instancia de éste.
13
Modelado de la POO
• Existe diversidad de herramientas que ayudan al modelado de la programación orientada a objetos a través de estándares.
• Una de las más utilizadas es la de UML.• UML usa como herramientas los diagramas gráficos para
representar el sistema. Éstos son:
• Diagrama de clases.• Diagrama de comportamiento.• Diagrama de casos de uso.• Diagramas de implementación.
14
Diagramas de Clases
• Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de agregación.
• Un diagrama de clases esta compuesto por los siguientes elementos:
Clase: atributos, métodos y visibilidad. Relaciones: Herencia, Composición, Agregación,
Asociación y Uso.
15
Representación
• En UML, una clase es representada por un rectángulo que posee tres divisiones:
<Nombre Clase>
<Atributos>
<Operaciones o Métodos>
16
Ejemplo Clase
• Una Cuenta Corriente que posee como características: Balance Numero ID.• Puede realizar las operaciones de: Depositar sacarDinero y consultarBalance.
17
Atributos y Métodos
• Los llamaremos miembros de la clase. Sus accesos pueden ser de cuatro diferentes tipos que definen el grado de comunicación y visibilidad de ellos con el entorno, estos son:
• public (+, ): Indica que el atributo será visible tanto dentro como fuera de la clase ya sea fuera o dentro del paquete.
• private (-, ): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos pueden manipularlo).
• protected (#, ):Será accesible desde las clases que se encuentren en el mismo paquete así como en todos sus subclases. Aunque las subclases que se encuentren fuera del paquete sus objetos o instancias no los podrán manipular.
• Friendly ( ): Indica que el atributo será accesible desde cualquier otra clase que se encuentre en el mismo paquete.
18
Relaciones
• Es necesario explicar el concepto de cardinalidad de relaciones: En UML, la cardinalidad de las relaciones indica el grado y nivel de dependencia, se anotan en cada extremo de la relación y éstas pueden ser:
• uno o muchos: 1..* (1..n) • 0 o muchos: 0..* (0..n) • número fijo: m (m denota el número).
19
Herencia
• Indica que una subclase hereda los métodos y atributos especificados por una superclase, de esta forma la subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la superclase (public y protected), ejemplo:
20
Composición
• Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye.
21
Agregación
• Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye.