Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción...

23
1 Programación Orientada a Objetos Introducción César Julio Bustacara Medina Facultad de Ingeniería Pontificia Universidad Javeriana 27/01/2016

Transcript of Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción...

Page 1: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

1

Programación Orientada a Objetos

Introducción

César Julio Bustacara Medina

Facultad de Ingeniería Pontificia Universidad Javeriana

27/01/2016

Page 2: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 3: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 4: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 5: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

Objetos en el mundo real

5

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

Los objetos tienen acciones asociadas a ellos.

Page 6: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

Ejemplo: PERRO

6

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

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

Page 7: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

¿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”

Page 8: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 9: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 10: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 11: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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.

Page 12: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 13: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

Abstracción

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

13

Page 14: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

Ejercicio

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

14

Page 15: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 16: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 17: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 18: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 19: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 20: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 21: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 22: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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

Page 23: Programación Orientada a Objetos - …cbustaca/docencia/POO-2016-01/... · Objetos Introducción ... •Es una manifestación concreta de una abstracción con un ... –capturar

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