Está en la página 1de 28

Tema 1:

Introducción al Paradigma Orientado


a Objetos
Programación Orientada a Objetos.

www.kybele.urjc.es
Índice

 Introducción
 Elementos
Clases y Objetos
Mensajes y Métodos
Atributos y Estado
Herencia y Polimorfismo
 Principios del Paradigma Orientado a Objetos
Abstracción
Encapsulación
Modularidad
Jerarquía
 Bibliografía y referencias

www.kybele.urjc.es
Introducción

 Definición: Orientación a Objetos


Paradigma de computación
Define y organiza el software basándose en entidades
denominadas objetos
Los objetos combinan datos, comportamiento e identidad

 Ámbitos
Programación
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
abstracción, encapsulación, modularización y
jerarquización.
 Objetos y clases
 Mensajes y métodos
 Estado y atributos
 Herencia y polimorfismo

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
 Objetos y Clases
Clase: descripción de los datos (atributos) y de las
operaciones que describen el comportamiento de un
cierto conjunto de elementos homogéneos

 Resultado del proceso de abstracción


 “Molde” de infinitos objetos con ciertas características para
crear en el dominio de la computadora un reflejo del
mundo real
 “Infinitud de objetos”  no estrictamente necesaria
(meses, universo)
 Ej.: coche, fracción, pila, radio, persona, autobús

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
 Objetos y Clases
Clases:
 Abstracción: conceptos del dominio del problema
 Principio de encapsulación: vistas
• Pública o Interfaz: comportamiento (= qué operaciones responden
los objetos de esta clase)
• Privada o Implantación: estructuras de datos de la clase y cómo
manipulan las operaciones los datos
 No existe nada más que clases y sus objetos, ni constantes,
tipos y datos “sueltos”, ni procedimientos y funciones
“sueltas”, etc.

Clase = nuevo bloque de construcción modular 


cohesión 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: Proyección de parte del mundo real (del dominio del
problema o del de la solución), en la computadora

 Características:
• Pueden ser: Tangibles (libros) o Intangibles (deudas)
• Todo objeto se identifica unívocamente
• Todo objeto tiene unos datos propios (atributos) y un comportamiento
determinado

 Ej: mi coche, pila nº 2, gastos/ingresos, radio del salón, autobús


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, multiplicación y división. Se desea almacenar el conjunto de
operaciones realizadas en un intervalo de tiempo determinado. Los números
podrán ser reales o imaginarios.
Ej2.: Un reproductor MP3 consta de una pantalla de visualización y una serie de
botones que permiten: cambiar de canción, subir el volumen, ver cuánta batería le
queda al dispositivo y cambiar los colores de la pantalla.
Ej3.: La universidad desea almacenar la información de todos los profesores, las
asignaturas de cada profesor, el campus en el que se imparten, las páginas Web de
cada asignatura. También desea realizar la gestión de las nóminas de estos
profesores en función del número 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 información 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
tecnología 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 búsqueda eficiente de contenidos.

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
 Mensajes y métodos
Mensaje: Es la invocación de una operación 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
operación 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)

Método: definición de una operación de una clase


 Consiste en la descripción 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 métodos
Método: Tipos
 Producen un cambio en el estado del objeto sobre el que se
ejecuta el método  procedimientos y asignación
 Aquellos que sin producir ningún cambio en el estado del
objeto calculan cierto valor  funciones y operadores
 Métodos específicos para la inicialización y finalización de la
vida de un objeto  constructores y destructores
Permiten la colaboración entre objetos: paso de
parámetros/argumentos en los métodos (información
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 características que tiene un determinado
objeto
 Son definidas en la clase del objeto
 Ej.: Coche: tipo de gasolina, capacidad del depósito,
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, depósito vacío, 1.200cc, etc.
www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
 Herencia
Herencia: es la transmisión de la vista pública (métodos
públicos) y de la vista privada (atributos, métodos privados
y definición de los métodos) de una clase a otra.
Forma de estructurar tipos/clases según su
comportamiento mediante la creación de una jerarquía de
clasificación

Clase padre/madre/base Generalización A hereda de B


Superclase A es un refinamiento de B
A está más especializada
que B
A es una subclase de B
Clase B es superclase de A
hija/extendida/derivada Especialización A “es un” B
Subclase

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
 Propiedades de la herencia:
Intuitivamente fácil 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 métodos
declarados en su superclase  hereda sus atributos y operaciones

 Propósitos
Especificación: Si la superclase es un interfaz o una clase abstracta
Especialización: La superclase proporciona funciones a las subclases,
pero éstas pueden redefinir los métodos adecuándolos a su
comportamiento específico
Extensión: La subclase añade nueva funcionalidad (métodos y
campos) pero no modifica ni altera lo heredado  Subtipo
Combinación múltiple: Se hereda de varias clases  herencia
múltiple

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
 Beneficios de la herencia
Reusabilidad del Software: se reutiliza el código heredado
Mayor fiabilidad: al reusarse el código existente, hay más
posibilidad de encontrar errores y subsanarlos
Consistencia de interfaces: la jerarquía de herencia
asegura que objetos similares tienen vistas públicas
similares
Prototipado rápido: al reutilizarse código se favorece este
método de desarrollo
Ocultación de información: 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
Polígono - Clases abstractas:
perímetro, área
 Polígono:  Figura
número_lados  F_Cerrada
Triángulo Cuadrilátero Círculo
 Cuadrilátero:  F_Abierta
perímetro, área  Polígono
 Cuadrado:
perímetro, área Cuadrado
 Círculo:
radio
perímetro

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

 Herencia múltiple:
Una clase hereda de más de un antecesor
Vehículo Casa

Caravana

Problema: herencia repetida


Vehículo

Terrestre Acuático

Anfibio Lancha

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
 Polimorfismo: Es el principio por el cual una misma
operación es resuelta de diferente forma según 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 función)

www.kybele.urjc.es
Elementos
del Paradigma Orientado a Objetos
 Tipos de polimorfismo
“Ad hoc” o estático:
 Sobrecarga
 Coerción: conversión 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
Instanciación dinámica: una referencia a un objeto A puede
estar haciendo referencia a distintos objetos derivados de la
clase A  el polimorfismo siempre implica enlace dinámico

 Beneficios:
Abstracción: no es necesario conocer toda la jerarquía de
clases derivadas
Extensibilidad: aumentar la funcionalidad del
programa/sistema sin tener que modificar el código ya escrito

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

 Principios básicos (procesos a tener en cuenta)


Abstracción
Encapsulación u Ocultamiento
Modularidad
Jerarquía

www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
 Abstracción
Def.: “Proceso mental de extracción de las características
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 interés
del observador)
Punto de vista del “cliente” (usuario)
Implementación en OO  Clases
Ejemplos:
 Autobús visto por un mecánico y un pasajero
 Persona en un historial clínico y en la universidad
 Radio como emisora o como aparato

www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
 Encapsulación u ocultamiento
Def.: “Proceso por el que se ocultan los detalles del
soporte de las características esenciales de una
abstracción (cómo se realizan las funciones)”
 Esencial: características del ‘mundo real’  abstracción
 Superfluo: estructuras de datos y algoritmos
Punto de vista del “desarrollador” (sistema)
Ventajas:
 Delimita el área de búsqueda de errores
 Reduce la complejidad del sistema
 Facilita la modificación del sistema
Implementación en OO
 Un objeto sólo tiene accesible su interfaz (servicios o métodos)
 Los atributos son siempre privados  Acceso por métodos de
solicitud y establecimiento de valor
www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
 Modularidad
Def.: “Proceso de descomposición de un sistema en un
conjunto de piezas poco acopladas (independientes) y
cohesivas (con significado propio): módulos”
Conceptos asociados:
 Acoplamiento: “fuerza” de la dependencia entre módulos  ideal: bajo
 Cohesión: mide el grado de conectividad entre los elementos de un solo
módulo  ideal: alta

Descomposición 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 función del sistema)

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

 Jerarquía
Def.: “Proceso de estructuración por el que se
produce una organización de un conjunto de
elementos en grados o niveles de responsabilidad,
de incumbencia o de composición entre otros”

Tipos:
1. Por grado de composición o de agregación: una abstracción
o módulo se compone de un conjunto de elementos

2. Por grados de clasificación, clasificación de las distintas


abstracciones de la más general a las más específicas

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

 Jerarquía
Univesidad

Facultades Rectorado
 Composición

Departament Dirección
os
Profesores

Titulares Asociados
Clasificación 

Interinos Funcionarios

www.kybele.urjc.es
Principios / Bases
del Paradigma Orientado a Objetos
 Jerarquía
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 diseño
• Descentralización
 Mecanismos para ayudar a conseguir la extensibilidad:
• Herencia
• Polimorfismo
¿Añadir una nueva funcionalidad?
 Identificar qué clase la soportará.
 Implementar la nueva funcionalidad en esta clase ¿Cómo?
• Modificar la definición 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 abstracción:
• La clase existente no resulta afectada.
• No hay código repetido

www.kybele.urjc.es
Conclusión
 ¿Qué es la orientación a objetos?
Organizar el software como una colección de objetos que contiene
tanto estructuras de datos como comportamiento.
Concepto Definición
Abstracción Crear clases para simplificar aspectos de la realidad
Una descripción de la organización y acciones compartidas por uno o más objetos
Clase
similares
Estructura

Diseñar clases y objetos para restringir el acceso a los datos y comportamiento


Encapsulación
mediante la definición 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 cómo manipular dichos datos

Paso de mensajes Un objeto envía datos a otro o le solicita la invocación de un método


Comport.

Método Forma de acceder, establecer o manipular la información de un objeto

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

Tabla extraída 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 bibliografía

 Design Patterns: Elements of reusable Object-Oriented Software.


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

 Programación II: Teoría y práctica del módulo de programación


orientada a objetos. L. Fernández. Servicio de publicaciones UPM

www.kybele.urjc.es

También podría gustarte