Sie sind auf Seite 1von 28

Tema 1:

Introduccin al Paradigma Orientado


a Objetos
Programacin Orientada a Objetos.

www.kybele.urjc.es
ndice

Introduccin
Elementos
Clases y Objetos
Mensajes y Mtodos
Atributos y Estado
Herencia y Polimorfismo
Principios del Paradigma Orientado a Objetos
Abstraccin
Encapsulacin
Modularidad
Jerarqua
Bibliografa y referencias

www.kybele.urjc.es
Introduccin

Definicin: Orientacin a Objetos


Paradigma de computacin
Define y organiza el software basndose en entidades
denominadas objetos
Los objetos combinan datos, comportamiento e identidad

mbitos
Programacin
Bases de datos
Procesos de desarrollo
Arquitectura
Comunicaciones
Etc.

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos

Elementos del paradigma O. O.


Las bases de la POO son los mecanismos de
abstraccin, encapsulacin, modularizacin y
jerarquizacin.
Objetos y clases
Mensajes y mtodos
Estado y atributos
Herencia y polimorfismo

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Objetos y Clases
Clase: descripcin de los datos (atributos) y de las
operaciones que describen el comportamiento de un
cierto conjunto de elementos homogneos

Resultado del proceso de abstraccin


Molde de infinitos objetos con ciertas caractersticas para
crear en el dominio de la computadora un reflejo del
mundo real
Infinitud de objetos no estrictamente necesaria
(meses, universo)
Ej.: coche, fraccin, pila, radio, persona, autobs

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Objetos y Clases
Clases:
Abstraccin: conceptos del dominio del problema
Principio de encapsulacin: vistas
Pblica o Interfaz: comportamiento (= qu operaciones responden
los objetos de esta clase)
Privada o Implantacin: estructuras de datos de la clase y cmo
manipulan las operaciones los datos
No existe nada ms que clases y sus objetos, ni constantes,
tipos y datos sueltos, ni procedimientos y funciones
sueltas, etc.

Clase = nuevo bloque de construccin modular


cohesin entre datos y operaciones
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Objetos y Clases
Objeto:
Def.1: Ejemplar concreto (instancia) de una clase que responde al
comportamiento definido por las operaciones de la clase a la que
pertenece
Def.2: Proyeccin de parte del mundo real (del dominio del
problema o del de la solucin), en la computadora

Caractersticas:
Pueden ser: Tangibles (libros) o Intangibles (deudas)
Todo objeto se identifica unvocamente
Todo objeto tiene unos datos propios (atributos) y un comportamiento
determinado

Ej: mi coche, pila n 2, gastos/ingresos, radio del saln, autobs


518
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos

Objeto:

TUNE
FM 88 90 93 97 100 102 Mhz
ON OFF

FM AM AM 530 650 850 900 1200 Khz

L H L H L H

VOLUME TONE BALANCE

Estado: Comportamiento:
valor del volumen Subir/bajar volumen
valor del tono Cambiar tono
AM/FM Cambiar banda
apagado/encendido Encender/Apagar
frecuencia seleccionada Selecc. frecuencia
CD introducido Introducir CD

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Ejercicios: Definir e identificar clases y objetos
Ej1.: Se desea crear un sistema software que permita realizar las operaciones de
suma, resta, multiplicacin y divisin. Se desea almacenar el conjunto de
operaciones realizadas en un intervalo de tiempo determinado. Los nmeros
podrn ser reales o imaginarios.
Ej2.: Un reproductor MP3 consta de una pantalla de visualizacin y una serie de
botones que permiten: cambiar de cancin, subir el volumen, ver cunta batera le
queda al dispositivo y cambiar los colores de la pantalla.
Ej3.: La universidad desea almacenar la informacin de todos los profesores, las
asignaturas de cada profesor, el campus en el que se imparten, las pginas Web de
cada asignatura. Tambin desea realizar la gestin de las nminas de estos
profesores en funcin del nmero de asignaturas y horas impartidas por cada
profesor.
Ej4.: En un zoo se quiere implementar un sistema de venta de entradas interactivo.
En l se podr consultar la informacin de los animales que tiene el parque, los
horarios y precios del zoo. Este sistema deber ser accesible para los discapacitados
visuales.
Ej5.: Se desea crear un sistema de intercambio de datos legales basado en la
tecnologa P2P. Para ello habr que tener en cuenta el tipo de ficheros que se va a
descargar, los protocolos de comunicaciones entre diferentes sistemas de la red
P2P, los servidores a los que se conectan los clientes, el progreso de la descarga y un
sistema de bsqueda eficiente de contenidos.

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Mensajes y mtodos
Mensaje: Es la invocacin de una operacin sobre un
objeto
Un objeto es el agente activo que lanza el mensaje y otro
objeto es el agente pasivo que recibe el mensaje
El objeto que recibe el mensaje debe contemplar dicha
operacin entre las definidas por la clase a la que pertenece
Puede verse como la solicitud de un servicio a un objeto
Un objeto siempre devuelve un objeto como respuesta al
mensaje (a veces l mismo)

Mtodo: definicin de una operacin de una clase


Consiste en la descripcin formal del comportamiento
asociado a un objeto
Puede entenderse como un servicio que ofrece el objeto
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos

Mensajes y mtodos
Mtodo: Tipos
Producen un cambio en el estado del objeto sobre el que se
ejecuta el mtodo procedimientos y asignacin
Aquellos que sin producir ningn cambio en el estado del
objeto calculan cierto valor funciones y operadores
Mtodos especficos para la inicializacin y finalizacin de la
vida de un objeto constructores y destructores
Permiten la colaboracin entre objetos: paso de
parmetros/argumentos en los mtodos (informacin
del exterior)

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos

Estado y atributos
Atributo: cada uno de los datos de una clase
Representan las caractersticas que tiene un determinado
objeto
Son definidas en la clase del objeto
Ej.: Coche: tipo de gasolina, capacidad del depsito,
cilindrada, etc.

Estado: conjunto de los valores de los atributos que


tiene un objeto, por pertenecer a una clase, en un
instante dado
Ej.: mi coche con gasoil, depsito vaco, 1.200cc, etc.
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Herencia
Herencia: es la transmisin de la vista pblica (mtodos
pblicos) y de la vista privada (atributos, mtodos privados
y definicin de los mtodos) de una clase a otra.
Forma de estructurar tipos/clases segn su
comportamiento mediante la creacin de una jerarqua de
clasificacin

Clase padre/madre/base Generalizacin A hereda de B


Superclase A es un refinamiento de B
A est ms especializada
que B
A es una subclase de B
Clase B es superclase de A
hija/extendida/derivada Especializacin A es un B
Subclase

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Propiedades de la herencia:
Intuitivamente fcil de comprender
Una subclase extiende las propiedades de su superclase
Una subclase es una forma restringida de la superclase
Un objeto de una subclase puede acceder a campos y mtodos
declarados en su superclase hereda sus atributos y operaciones

Propsitos
Especificacin: Si la superclase es un interfaz o una clase abstracta
Especializacin: La superclase proporciona funciones a las subclases,
pero stas pueden redefinir los mtodos adecundolos a su
comportamiento especfico
Extensin: La subclase aade nueva funcionalidad (mtodos y
campos) pero no modifica ni altera lo heredado Subtipo
Combinacin mltiple: Se hereda de varias clases herencia
mltiple

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Beneficios de la herencia
Reusabilidad del Software: se reutiliza el cdigo heredado
Mayor fiabilidad: al reusarse el cdigo existente, hay ms
posibilidad de encontrar errores y subsanarlos
Consistencia de interfaces: la jerarqua de herencia
asegura que objetos similares tienen vistas pblicas
similares
Prototipado rpido: al reutilizarse cdigo se favorece este
mtodo de desarrollo
Ocultacin de informacin: la disponibilidad de interfaces
claras reduce las interconexiones entre sistemas (clases
padre como interfaz)
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Ejemplo: (herencia simple)

Figura - Todas las figuras se pueden:


rotar
Figura: escalar
F_abierta F_cerrada
color
rota, mueve, dibuja - Todas tienen un color
F_cerrada: Elipse
Polgono - Clases abstractas:
permetro, rea
Polgono: Figura
nmero_lados F_Cerrada
Tringulo Cuadriltero Crculo
Cuadriltero: F_Abierta
permetro, rea Polgono
Cuadrado:
permetro, rea Cuadrado
Crculo:
radio
permetro

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos

Herencia mltiple:
Una clase hereda de ms de un antecesor
Vehculo Casa

Caravana

Problema: herencia repetida


Vehculo

Terrestre Acutico

Anfibio Lancha

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Polimorfismo: Es el principio por el cual una misma
operacin es resuelta de diferente forma segn el objeto
que recibe el mensaje
Posibilidad que tienen distintos objetos de actuar de una
manera diferente (desencadenar operaciones distintas) en
respuesta a un mismo mensaje (una misma llamada a funcin)

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
Tipos de polimorfismo
Ad hoc o esttico:
Sobrecarga
Coercin: conversin de objetos de una clase a otra (cast)
Universal

Bases:
Herencia: no se puede aplicar polimorfismo si no es con clases
que hereden de otras
Instanciacin dinmica: una referencia a un objeto A puede
estar haciendo referencia a distintos objetos derivados de la
clase A el polimorfismo siempre implica enlace dinmico

Beneficios:
Abstraccin: no es necesario conocer toda la jerarqua de
clases derivadas
Extensibilidad: aumentar la funcionalidad del
programa/sistema sin tener que modificar el cdigo ya escrito

www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos

Principios bsicos (procesos a tener en cuenta)


Abstraccin
Encapsulacin u Ocultamiento
Modularidad
Jerarqua

www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Abstraccin
Def.: Proceso mental de extraccin de las caractersticas
esenciales (requisitos o funciones) de algo, ignorando los
detalles superfluos
Motivo: No es posible manejar todos los aspectos de un
sistema al mismo tiempo un individuo puede
comprender 7 2 detalles a la vez
Fundamentalmente subjetiva (dependiendo del inters
del observador)
Punto de vista del cliente (usuario)
Implementacin en OO Clases
Ejemplos:
Autobs visto por un mecnico y un pasajero
Persona en un historial clnico y en la universidad
Radio como emisora o como aparato

www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Encapsulacin u ocultamiento
Def.: Proceso por el que se ocultan los detalles del
soporte de las caractersticas esenciales de una
abstraccin (cmo se realizan las funciones)
Esencial: caractersticas del mundo real abstraccin
Superfluo: estructuras de datos y algoritmos
Punto de vista del desarrollador (sistema)
Ventajas:
Delimita el rea de bsqueda de errores
Reduce la complejidad del sistema
Facilita la modificacin del sistema
Implementacin en OO
Un objeto slo tiene accesible su interfaz (servicios o mtodos)
Los atributos son siempre privados Acceso por mtodos de
solicitud y establecimiento de valor
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Modularidad
Def.: Proceso de descomposicin de un sistema en un
conjunto de piezas poco acopladas (independientes) y
cohesivas (con significado propio): mdulos
Conceptos asociados:
Acoplamiento: fuerza de la dependencia entre mdulos ideal: bajo
Cohesin: mide el grado de conectividad entre los elementos de un solo
mdulo ideal: alta

Descomposicin en OO
Descomponer para obtener las abstracciones claves del dominio del
problema
El mundo es un conjunto de objetos agrupados que colaboran
Cada objeto exhibe un comportamiento definido (no identificable,
necesariamente, con una funcin del sistema)

www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos

Jerarqua
Def.: Proceso de estructuracin por el que se
produce una organizacin de un conjunto de
elementos en grados o niveles de responsabilidad,
de incumbencia o de composicin entre otros

Tipos:
1. Por grado de composicin o de agregacin: una abstraccin
o mdulo se compone de un conjunto de elementos

2. Por grados de clasificacin, clasificacin de las distintas


abstracciones de la ms general a las ms especficas

www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos

Jerarqua
Univesidad

Facultades Rectorado
Composicin

Departament Direccin
os
Profesores

Titulares Asociados
Clasificacin

Interinos Funcionarios

www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
Jerarqua
Favorece la extensibilidad:
Facilidad con la que los productos software pueden ser adaptados a
cambios incrementales de especificaciones.
Principios para facilitar la extensibilidad:
Simplicidad de diseo
Descentralizacin
Mecanismos para ayudar a conseguir la extensibilidad:
Herencia
Polimorfismo
Aadir una nueva funcionalidad?
Identificar qu clase la soportar.
Implementar la nueva funcionalidad en esta clase Cmo?
Modificar la definicin original?
Hacer copia y modificar la copia?
Modificar la original por crecimiento?
ptimo por crecimiento: se crea una subclase que define las
diferencias entre la clase existente y la nueva abstraccin:
La clase existente no resulta afectada.
No hay cdigo repetido

www.kybele.urjc.es
Conclusin
Qu es la orientacin a objetos?
Organizar el software como una coleccin de objetos que contiene
tanto estructuras de datos como comportamiento.
Concepto Definicin
Abstraccin Crear clases para simplificar aspectos de la realidad
Una descripcin de la organizacin y acciones compartidas por uno o ms objetos
Clase
similares
Estructura

Disear clases y objetos para restringir el acceso a los datos y comportamiento


Encapsulacin
mediante la definicin de un conjunto de mensajes que un objeto puede recibir

Herencia Los datos y comportamiento de una clase es incluido o usado como base de otra

Elemento individual, identificable, real o abstracto, que contiene datos sobre s


Objeto
mismo y descripciones de cmo manipular dichos datos

Paso de mensajes Un objeto enva datos a otro o le solicita la invocacin de un mtodo


Comport.

Mtodo Forma de acceder, establecer o manipular la informacin de un objeto

Polimorfismo Diferentes clases pueden responder de forma diferente ante un mismo mensaje

Tabla extrada de The Quarks of Object-Oriented Development. Deborah J. Armstrong. Communications of the ACM. Vol.49/No.2 Febrero 2006

www.kybele.urjc.es
Referencias y bibliografa

Design Patterns: Elements of reusable Object-Oriented Software.


E. Gamma et al. Ed. Addison-weasley, 1994

Programacin II: Teora y prctica del mdulo de programacin


orientada a objetos. L. Fernndez. Servicio de publicaciones UPM

www.kybele.urjc.es

Das könnte Ihnen auch gefallen