570 likes | 1.24k Views
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.
E N D
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. • É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.
Definición de Objeto • Entidad compleja provista de propiedades (datos, atributos) y comportamiento (funcionalidad, métodos). • Cada objeto expone una interfaza 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.
Representación del objeto Auto 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.
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. Conductor
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.
Ejemplo • Tendremos un objeto transporte, que tendrá propiedades como cantidad de pasajeros, cantidad de puertas, etc., y métodos como arranca, frenay dobla. • De esta manera definiríamos un automóvil como un transporte, agregando las particularidades del automóvilque 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).
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 arrancaen 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 arrancaproducirá el comportamiento correcto según el objeto al que se lo esté ordenando.
Comunicación entre los objetos • Para ordenarle a un objeto que haga algo, debemos mandarle un mensaje. A través delos mensajes establecemos la comunicación entre los objetos de forma tal que les ordenamos ejecutar un método con algunos parámetros.
Á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
Á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á compuestopor más objetos con comportamientos distintos. • Se denomina jerarquía de composición, y sirve para representar uno o variosobjetos que están dentro de otro que los contiene.
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.
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.
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.
Representación • En UML, una clase es representada por un rectángulo que posee tres divisiones:
EjemploClase • Una Cuenta Corriente que posee como características: • Balance • Numero • ID. • Puede realizar las operaciones de: • Depositar • sacarDinero • y consultarBalance.
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.
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).
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:
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.
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.