Tema 3: Introducción a la programación orientada a objetos.

Anuncio
Tema 3: Introducción a la
programación orientada a objetos.
(El lenguaje C++)
1
Tema 3: Introducción a la POO
Mariano Pérez
Índice
1. Técnicas de Programación:
Programación no estructurada.
Programación orientada a procedimientos.
Programación modular.
Programación orientada a objetos.
2. Conceptos de programación orientada a objetos.
Abstracción de datos.
Encapsulamiento.
Clase
Objeto
Mensaje.
2
Tema 3: Introducción a la POO
Mariano Pérez
1. Técnicas de programación
Programación no estructurada
Pequeños programas con:
Una sola función principal (main),
con secuencias de instrucciones que modifican:
Variables globales.
Programa
programa principal
datos
Poco eficiente para grandes programas:
Necesidad de repetir las secuencias de instrucciones
Solución
Extraer las secuencias de instrucciones que se repiten
fuera del programa principal->procedimientos
3
Tema 3: Introducción a la POO
Mariano Pérez
1. Técnicas de programación
Programación orientada a procedimientos
Descomponemos un problema en subproblemas, y repetimos
el proceso hasta codificarlo todo .
Creamos un conjunto de funciones (o procedimientos) que se
comunican a través de argumentos y variables.
Soportada tanto por C como por C++.
Programa: secuencia de procedimientos. El programa ppal
pasa los datos a los procedimientos, que los procesan.
Programa
Ej. Calcular área de figura ‘f’:
4
a= Area(f);
switch(f.tipo_figura){
case rectang: a=AreaRect(f);
break;
case circulo: a= AreaCirc(f);
break;}
Tema 3: Introducción a la POO
programa principal
datos
datos
AreaRect
datos
AreaCirc
proc
Mariano Pérez
1. Técnicas de programación
Programación modular
• Los procedimientos con una funcionalidad común se
agrupan en módulos.
• El programa ppal llama a los procedimientos de los módulos.
• Los módulos contienen datos y procedimientos.
• Cada módulo sólo tiene
un estado, y sólo existe una
vez como máximo durante
el programa.
• Módulo con dos ficheros:
interfaz (*.h)
implementación (*.c ó *.cpp)
5
Programa
programa principal
datos
módulo
datos
proc
módulo
proc 1
Tema 3: Introducción a la POO
proc 3
Mariano Pérez
1. Técnicas de programación
Programación orientada a objetos
Se centra más en los datos que en los procedimientos.
Los datos, y las operaciones aplicables a ellos, son objetos.
Sobre los objetos se realizan peticiones, y devuelven datos.
Cada objeto gestiona las peticiones de forma distinta.
Ejemplo: a=f.Area(); -> a la figura f se le pide que
devuelva su área, sin importar de qué tipo de figura se trate.
Abstracción de datos
Ocultación de la información.
Herencia.
Enlace dinámico de los mensajes a procedimientos.
6
Tema 3: Introducción a la POO
Mariano Pérez
Índice
1. Técnicas de Programación:
Programación no estructurada.
Programación orientada a procedimientos.
Programación modular.
Programación orientada a objetos.
2. Conceptos de programación orientada a objetos.
Abstracción de datos.
Encapsulamiento.
Clase
Objeto
Mensaje.
7
Tema 3: Introducción a la POO
Mariano Pérez
2. Conceptos de programación orientada a objetos
Abstracción de datos
• Resolución de problemas: creamos un modelo abstracto
del problema.
Abstracción
Problema
Modelo
• Propiedades del problema: datos y operaciones.
- Ej: programa para la gestión de empleados.
Modelo del empleado: propiedades necesarias para resolver este
problema-> datos. Empleado abstracto.
Operaciones sobre los empleados abstractos.
8
Tema 3: Introducción a la POO
Mariano Pérez
2. Conceptos de programación orientada a objetos
• Tipo abstracto de datos: estructura de datos con unas
operaciones sobre ellos definidas.
• Operaciones sobre los datos = interface ->parte visible.
Modelo de empleado:
- Datos: nombre, DNI,
sueldo...
- Operaciones:
crear empleado nuevo,
borrar existente....
tipo de datos abstracto
Estructura de datos abstracta
Operaciones
instancia
instancia
interfaz
Empleados concretos
-Empleado 1: Juan, ...
-Empleado 2: Vicente,...
• En POO: tipo de datos abstracto = Clase.
9
Tema 3: Introducción a la POO
Mariano Pérez
2. Conceptos de programación orientada a objetos
Encapsulamiento = ocultación de información.
• Ocultación de información: sólo mostramos la interfaz de la
estructura de datos (las operaciones) y ocultamos lo datos.
• Ventajas: al usar la clase no nos preocupamos de cómo se
realizan internamente las operaciones.
- Ej: clase complejo
Datos: parte real (r) , y parte imaginaria (i ).
Operaciones: suma, resta, etc.
Instancias: complejos A , B y C
C = A + B-> no importa cómo se haga internamente la suma.
10
Tema 3: Introducción a la POO
Mariano Pérez
2. Conceptos de programación orientada a objetos
Clase
• Representación de un tipo abstracto de datos.
• Contiene atributos (=datos) y métodos (=operaciones).
• Instancias de las clases = objetos.
• Clase: define las propiedades y el comportamiento de un
conjunto de objetos.
class Empleado {
// Atributos (Datos):
string nombre;
int DNI;
..............
// Métodos (Operaciones):
insertar_nombre(..);
};
11
Tema 3: Introducción a la POO
Mariano Pérez
2. Conceptos de programación orientada a objetos
Objeto.
• Instancia de una clase: “ejemplos” reales de la clase abstracta.
• Identificados por medio de un nombre.
• Estado del objeto: valores de sus atributos.
Mensaje.
• Solicitud a un objeto para invocar a uno de sus métodos.
• Contiene: nombre del método, y argumentos del método.
12
Tema 3: Introducción a la POO
Mariano Pérez
2. Conceptos de programación orientada a objetos
Programa.
• Conjunto de objetos interactuando.
• Los objetos reaccionan al recibir mensajes cambiando su
estado.
Programa
Objeto 1
Objeto 3
Objeto 4
Objeto 2
13
Tema 3: Introducción a la POO
Mariano Pérez
Descargar