Introducción a la Programación Orientada a Objetos (POO)

21
Introducción a la Programación Orientada a Objetos (POO) M.S.C. Ivette Hernández Dávila 1

description

Introducción a la Programación Orientada a Objetos (POO). M.S.C. Ivette Hernández Dávila. Propiedades y comportamiento de los objetos. ¿Qué es un objeto? Ejemplo: Si vamos a un aeropuerto. - PowerPoint PPT Presentation

Transcript of Introducción a la Programación Orientada a Objetos (POO)

Page 1: Introducción  a la  Programación Orientada a Objetos (POO)

1

Introducción a la Programación Orientada a Objetos (POO)

M.S.C. Ivette Hernández Dávila

Page 2: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Page 3: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Page 4: Introducción  a la  Programación Orientada a Objetos (POO)

4

Representación del objeto Auto

Automotorruedasasientosarranca()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.

Page 5: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Automotorruedasasientosarranca()frena()dobla()

abrirValvulas()moverPistones()

Conductor

Page 6: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Page 7: Introducción  a la  Programación Orientada a Objetos (POO)

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).

Page 8: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Page 9: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Page 10: Introducción  a la  Programación Orientada a Objetos (POO)

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

Page 11: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Page 12: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Page 13: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Page 14: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Page 15: Introducción  a la  Programación Orientada a Objetos (POO)

15

Representación

• En UML, una clase es representada por un rectángulo que posee tres divisiones:

<Nombre Clase>

<Atributos>

<Operaciones o Métodos>

Page 16: Introducción  a la  Programación Orientada a Objetos (POO)

16

Ejemplo Clase

• Una Cuenta Corriente que posee como características: Balance Numero ID.• Puede realizar las operaciones de: Depositar sacarDinero y consultarBalance.

Page 17: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Page 18: Introducción  a la  Programación Orientada a Objetos (POO)

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).

Page 19: Introducción  a la  Programación Orientada a Objetos (POO)

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:

Page 20: Introducción  a la  Programación Orientada a Objetos (POO)

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.

Page 21: Introducción  a la  Programación Orientada a Objetos (POO)

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.