programación orientada a objetos - …cbustaca/docencia/poo-2016-01/... · objetos introducción...

Post on 19-Sep-2018

225 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Programación Orientada a Objetos

Introducción

César Julio Bustacara Medina

Facultad de Ingeniería Pontificia Universidad Javeriana

27/01/2016

Programación Orientada a Objetos

• POO es un conjunto de técnicas que pueden utilizarse para desarrollar programas eficientemente.

• Los objetos son los elementos principales de construcción.

• La Orientación a Objetos (OO) es el estilo dominante de programación, descripción y modelado de hoy en día.

2

Programación Orientada a Objetos

DEFINICION

• “Un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase y cuyas clases son todas miembros de una jerarquía de clases unidas mediante relaciones”

Grady Booch

3

El modelo de Objetos

• Objetos en el mundo real

– Atributos

– Propiedades

– Métodos

• Abstracción

• Clases y Objetos

• Encapsulamiento

• Mensajes

• Constructores

• Destructor

• Herencia

– Simple

– Múltiple

4

Objetos en el mundo real

5

Los objetos poseen características que los distinguen entre sí.

Los objetos tienen acciones asociadas a ellos.

Ejemplo: PERRO

6

Características: • Nombre: “FIDO” • Raza: “Chihuahua” • Color: “Café” • ….etc…

Acciones: Ladrar [“Guau Guau”] Comer [“Chomp Chomp”] Dormir [“Zzzzzzzz”] …etc…

¿Cómo modelar un objeto real en un programa?

7

Las “características” son ATRIBUTOS o datos. Las “acciones” son MÉTODOS u operaciones.

FIDO: Perro

Nombre: FIDO Raza: Chihuahua Color: Café

Ladrar() Comer() Dormir()

Abstracción de un objeto “Perro” en software Objeto Perro “Real”

Objetos

• Un objeto representa una entidad física, conceptual ó de software.

• Es una manifestación concreta de una abstracción con un límite bien definido y una identidad que encapsula estado y comportamiento.

• Un objeto puede : – modelar entidades del mundo real,

– capturar abstracciones de fenómenos complejos,

– representar artefactos de software (pilas, gráficos, …).

8

Objetos

• Ejemplos: Estudiante, Profesor, Automóvil, Libro, Figura.

• El objeto tiene como propósito promover la comprensión del mundo real, y es la base de la implementación.

9

Objetos

Todos los objetos tienen:

• Estado

• Comportamiento

• Identidad

10

Valor de sus características (Atributos)

Acciones que puede realizar (Métodos)

Pertenece a una clase y tiene un Nombre único

Abstracción

11

La abstracción se centra en las características esenciales de algún objeto, en relación a la perspectiva del observador.

Abstracción

Se refiere a “quitar” atributos, propiedades y métodos de un objeto y quedarse solo con aquellos que sean necesarios (relevantes para el problema a solucionar).

12

Objeto Perro “Real”: Características o atributos: (Nombre, Raza, Color, Edad, Tamaño, etc.) Acciones o métodos: (Ladrar, Comer, Dormir, Jugar, Caminar, etc.)

FIDO: Perro

Nombre: FIDO Raza: Chihuahua Color: Café

Ladrar() Comer() Dormir()

Abstracción

• Las clases y objetos deben estar al nivel de abstracción adecuado: ni demasiado alto ni demasiado bajo.

13

Ejercicio

• Deducir los objetos necesarios para diseñar un programa con diferentes juegos de cartas.

14

Ejercicio No.1

• Definir la clase Fecha, con valores para el día del mes, el mes y el año. Todos son valores naturales guardados en atributos. Hay que ofrecer los siguientes métodos:

– actualizar los tres campos de la fecha. Hay que confirmar que la fecha sea correcta.

– escribir la fecha en formato “24 de febrero de 2.016”.

– pasar al siguiente día.

15

Ejercicio No.2

• Diseñar la clase Fracción, que representa el conjunto de los números racionales. Un número racional se representa por un numerador, que es un número entero y un denominador, que es un número natural. Esta clase debe ofrecer mínimo los siguientes métodos: – consulta del numerador. Devuelve un número entero.

– consulta del denominador. Devuelve un número natural.

– equivalencia en valor real.

– asignación de valores al numerador y el denominador. Este método tiene dos parámetros de tipo entero, que representan los nuevos valores para el numerador y el denominador. Este método tiene que asignar valores a los atributos tales que el número se guarde de forma irreducible. Reglas de reducción: el signo del número racional se guarda en el numerador, por lo que si el signo del valor que se pasa como parámetro para el denominador es negativo, hay que cambiarlo. Si el valor que se pasa como parámetro para el denominador es 0, se considera un error y no se actualiza ninguno de los dos valores. El valor final de los atributos numerador y denominador deben ser primos entre sí.

– operaciones aritméticas simples (suma, resta, producto y división). Todas estas operaciones se aplican a un objeto de la clase Fracción, que representa el primer operando, y tienen un parámetro, también de la clase Fracción, que representa el segundo operando. Devuelven un valor de la clase Fracción que corresponde al resultado de la operación.

16

Ejercicio No.3

• Diseñar un clase que corresponda a un control de velocidad. Este control, entre otras tareas, registra la velocidad actual de un vehículo y hace saltar una alarma cuando se pasa de un valor máximo establecido, que es constante e igual para todos los objetos de la clase. También se guarda la mayor velocidad alcanzada por el vehículo. Los métodos públicos de la clase son los siguientes: – consulta de la velocidad actual.

– consulta del valor máximo histórico de la velocidad.

– consulta del estado de la alarma

– método para incrementar la velocidad en un valor que se pasa como un parámetro de tipo natural. Si al intentar incrementar la velocidad se sobrepasa el límite, la velocidad se establece a la máxima permitida y se activa la alarma.

– método para disminuir la velocidad en un valor. La velocidad no puede ser negativa.

– borrado de la alarma. La alarma sólo se puede borrar cuando la velocidad actual sea 0. También se pone a 0 la velocidad máxima histórica.

17

Ejercicio No.4

• Diseñar una clase que simule una calculadora simple y que lea 2 enteros y un carácter. Si el carácter es un signo +, debe imprimir la suma; si es un signo −, la diferencia; si es ∗, el producto; si es /, el cociente; y si es %, el resto.

18

Ejercicio No.5

• Representar una clase ascensor que tenga funciones de subir, bajar, parar entre niveles, alarma de sobrecarga y botones de llamada en cada nivel para subir o bajar.

19

Ejercicio No.6

• Construir una clase llamada luz que simule un semáforo; con un atributo color que debe cambiar entre verde, amarillo y rojo en ese orden mediante la función cambio; cuando un objeto luz se cree su color inicial debe ser rojo.

20

Ejercicio No.7

• Construir una definición de clase que se pueda utilizar para representar un empleado de una compañía, definido por un número entero ID, un salario y el número máximo de horas de trabajo por semana. Los servicios que la clase debe proporcionar deben permitir ingresar datos de un nuevo empleado, visualizar sus datos existentes y tener capacidad para procesar las operaciones necesarias para dar de alta o baja en la seguridad social y en los seguros contratados por la compañía.

21

Ejercicio No.8

• Crear una clase que describa un rectángulo que se pueda visualizar en pantalla, cambiar de tamaño, modificar color de fondo y de los lados.

22

Ejercicio No.9

• Determinar los atributos y operaciones que pueden ser de interés para los siguientes objetos, suponiendo que serán elementos de un almacén de regalos: libro, disco, grabadora de video, cinta de video, televisor, radio, tostadora de pan, cadena de música, calculadora y teléfono celular o móvil.

23

top related