Está en la página 1de 10

TEMA 1

Introducción a la
Programación
Orientada a Objetos

Manuel Pereira González


V1.1

Agenda

ƒ Introducción
ƒ Objetos y Clases
ƒ Modelo de Objetos
ƒ Abstracción
ƒ Encapsulamiento
ƒ Herencia
ƒ Polimorfismo
ƒ Relaciones entre Objetos
ƒ Asociación
ƒ Agregación
ƒ Generalización / Especialización
ƒ Resumen

1
Introducción: Paradigma
POO
ƒ POO surge como necesidad de Reusabilidad de los
Componentes
ƒ Función -> Objeto (Objeto=Concepto)
ƒ Ventajas
ƒ Más parecido a la forma de pensar de las
personas
ƒ Desarrollo rápido
ƒ Mejora en calidad y legibilidad del código
ƒ Mejora en mantenibilidad. Definición clara de
interfaces, Niveles de Abstracción
ƒ Reusabilidad. Reutilización de código.
Encapsulamiento

Introducción: Historia POO

ƒ Simula: 1967 -> Introduce el concepto de Objeto


ƒ Smalltalk: 1980 -> POO puro, desarrollado en Xerox Palo Alto
Reasearch Center Learning Research Group
ƒ C++: 1983-1990 -> por Bjarne Stroustrup (C con clases)
ƒ Object Pascal: 1986 -> Esqueleto simplificado de lenguaje
POO por desarrolladores de Apple Computer y Niklaus Wirth
ƒ LISP/CLOS: 1988 -> Diseñado por un comité presidido por
Daniel Bobrow a partir de la ACM Lisp and Fuctional
Programming Conference de 1986
ƒ Java: 1995, 1997, 1998 -> Sun Microsystems, estándar de
facto en el desarrollo de aplicaciones actuales
ƒ C# (C Sharp)-> Microsoft (Scott Wiltamuth y Anders
Hejlsberg). Plataforma “.Net”

2
Agenda

ƒ Introducción
ƒ Objetos y Clases
ƒ Modelo de Objetos
ƒ Abstracción
ƒ Encapsulamiento
ƒ Herencia
ƒ Polimorfismo
ƒ Relaciones entre Objetos
ƒ Asociación
ƒ Agregación
ƒ Generalización / Especialización
ƒ Resumen

Objetos y Clases

ƒ Objeto = Concepto Clase Objeto


ƒ Clase -> Tipo de Objetos
ƒ Objeto -> Instancia Persona José Menendez
(ejemplar) de una Clase López
Coche Citroen Xsara
matrícula
4545BBS
Perro “popi”, el perro de
José

Montaña Mont Blanc

Teléfono Móvil El móvil de José:


Nokia 3310 rojo

3
Objetos y Clases

ƒ Clase: Patrón que define atributos y métodos comunes a los


objetos de cierto tipo.
ƒ Componentes de un Objeto
ƒ Operaciones (métodos)
ƒ Estado (atributos)
ƒ Ej:
ƒ Clase: Teléfono Móvil
ƒ Atributos: Marca, Modelo, Color, Dimensiones, …
ƒ Operaciones: Encender, Apagar, Llamar,…
ƒ Objeto: Teléfono Móvil de José
ƒ Atributos: Marca=Nokia, Modelo=3310, Color=Rojo, …
ƒ Operaciones: Encender, Apagar, Llamar,…

Objetos y Clases

ƒ Comunicación entre Objetos: Mensajes


ƒ Componentes de un mensaje
ƒ Objeto destinatario
ƒ Nombre del método
ƒ Parámetros (si existen)

Mensaje: Encender

José Mensaje: Llamar(645948384) Nokia 3310 rojo

4
Agenda

ƒ Introducción
ƒ Objetos y Clases
ƒ Modelo de Objetos
ƒ Abstracción
ƒ Encapsulamiento
ƒ Herencia
ƒ Polimorfismo
ƒ Relaciones entre Objetos
ƒ Asociación
ƒ Agregación
ƒ Generalización / Especialización
ƒ Resumen

Modelo de Objetos:
Abstracción
ƒ Abstracción
ƒ Conocimiento humano basado en niveles de abstracción
ƒ Átomo -> Molécula -> Persona -> Planeta -> Galaxia
ƒ “Abstraerse” de la complejidad interna para poder construir
sobre un nivel de abstracción estable
ƒ Extraer la información fundamental de una entidad
ignorando los detalles accidentales
ƒ Definir una clase = Realizar una abstracción de un
concepto. Ej: Clase Teléfono Móvil
ƒ Atributos: Marca, Modelo, Color, Dimensiones, …
ƒ Operaciones: Encender, Apagar, Llamar,…

5
Modelo de Objetos:
Encapsulamiento

ƒ Encapsulamiento
ƒ “Caja Negra”: Métodos y Atributos, da igual la
implementación específica
ƒ Ignorar los detalles internos
ƒ Definir una Interfaz: Especificar una abstracción
en forma de métodos y atributos
ƒ Sólo es necesario conocer la interfaz de una
clase, no es necesario conocer los detalles de su
funcionamiento interno
ƒ Ventaja del Encapsulamiento: Piezas
intercambiables mientras se siga cumpliendo la
interfaz -> Reutilización de Código

Modelo de Objetos:
Herencia
ƒ Herencia
ƒ Una clase (subclase ó clase hija) hereda la
estructura de otra (superclase o clase padre), y
concretiza ciertos aspectos de ésta.
ƒ La clase hija comprende un subconjunto de los
objetos de la clase padre.
ƒ Ej:
ƒ Clase: Animal
ƒ Ser vivo que nace, crece, se reproduce y muere
ƒ Subclase: Perro (subconjunto de animales)
ƒ Ser vivo que nace, crece, se reproduce, muere, tiene
cuatro patas, dos ojos, ladra, …

6
Modelo de Objetos:
Polimorfismo

ƒ Polimorfismo
ƒ Tratar objeto de una clase más general
independientemente de que sea de una clase
concreta
ƒ Ej: Si tengo un perro, un elefante y una jirafa,
puedo tratarlos a todos como animales
ƒ Ej: Polígono -> Método para calcular el perímetro
ƒ Círculo: 2 * PI * R
ƒ Rectángulo: Base * Altura
ƒ Triángulo: Base * Altura / 2
ƒ Lista de polígonos, cada uno sabe calcular su
área pero se tratan de igual manera sin saber de
qué tipo de polígono concreto se trata

Agenda

ƒ Introducción
ƒ Objetos y Clases
ƒ Modelo de Objetos
ƒ Abstracción
ƒ Encapsulamiento
ƒ Herencia
ƒ Polimorfismo
ƒ Relaciones entre Objetos
ƒ Asociación
ƒ Agregación
ƒ Generalización / Especialización
ƒ Resumen

7
Relaciones entre objetos:
Asociación

ƒ Asociación
ƒ Describe vínculos entre objetos
ƒ Multiplicidad:
ƒ Uno a Muchos: Ej: Una ciudad pertenece a un
país, un país tienes muchas ciudades.
ƒ Fija: Un perro tiene cuatro patas
ƒ Variable: Una casa tiene una o más habitaciones
ƒ Muchos a Muchos: Ej: Una empresa tiene
varios trabajadores, una persona puede
trabajar en varias empresas a la vez

Relaciones entre objetos:


Agregación

ƒ Agregación
ƒ Relación del tipo Todo / Parte
ƒ Ej:
ƒ La Tierra se compone de 5 continentes
ƒ Un continente se compone de varios países
ƒ Un país se compone de varias ciudades
ƒ Elección Agregación / Asociación: En
manos del analista

8
Relaciones entre objetos:
Generalización/Especialización

ƒ Generalización / SER VIVO


Especialización
ƒ Jerarquía definida a
través de la Herencia: ANIMAL VEGETAL
ƒ Un CANICHE es un PERRO
ƒ Una PERRO es un ANIMAL
ƒ Un ANIMAL es un SER ELEFANTE PERRO JIRAFA …
VIVO

CANICHE PEQUINÉS …

Agenda

ƒ Introducción
ƒ Objetos y Clases
ƒ Modelo de Objetos
ƒ Abstracción
ƒ Encapsulamiento
ƒ Jerarquía
ƒ Polimorfismo
ƒ Relaciones entre Objetos
ƒ Asociación
ƒ Agregación
ƒ Generalización / Especialización
ƒ Resumen

9
Resumen: Para más
información
ƒ http://www.lsi.uned.es/lp/IntroPOO.pdf
ƒ http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/Index
.htm
ƒ http://eees.ii.uam.es/alfonso/web_poo_04/teoria/mat
erial/material_temas.html
ƒ http://www.eps.uam.es/%7Ecastells/docencia/
ƒ http://www.monografias.com/trabajos15/lenguajes-
programacion/lenguajes-programacion.shtml
ƒ http://ieee.udistrital.edu.co/concurso/programacion_o
rientada_objetos/poo/historia.html

10

También podría gustarte