Publicado el 4 de Julio del 2017
3.029 visualizaciones desde el 4 de Julio del 2017
657,7 KB
26 paginas
Programación Orientada a Objetos
Programación Orientada a Objetos
Tema 1: Introducción
Tema 1: Introducción
Eduardo Mosqueira Rey
Eduardo Mosqueira Rey
LIDIA
LIDIA
Laboratorio de Investigación y
Laboratorio de Investigación y
desarrollo en Inteligencia Artificial
desarrollo en Inteligencia Artificial
Departamento de Computación
Departamento de Computación
Universidade da Coruña, España
Universidade da Coruña, España
Objetivos
Objetivos
• Contextualizar el paradigma de la orientación a
• Contextualizar el paradigma de la orientación a
objetos dentro de los distintos paradigmas de
objetos dentro de los distintos paradigmas de
programación existentes.
programación existentes.
• Analizar las diferencias metodológicas entre la
• Analizar las diferencias metodológicas entre la
• Analizar las diferencias metodológicas entre la
• Analizar las diferencias metodológicas entre la
programación por descomposición funcional y
programación por descomposición funcional y
programación por descomposición funcional y
programación por descomposición funcional y
la programación orientada a objetos.
la programación orientada a objetos.
• Introducir al alumno en el contexto de los
• Introducir al alumno en el contexto de los
lenguajes orientados a objetos.
lenguajes orientados a objetos.
• Conocer la historia y los aspectos básicos tanto
• Conocer la historia y los aspectos básicos tanto
del lenguaje como de la plataforma Java.
del lenguaje como de la plataforma Java.
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
2
Índice
Índice
1. Paradigmas de Programación
1. Paradigmas de Programación
2. Programación orientada a objetos
2. Programación orientada a objetos
3. Lenguaje Java
3. Lenguaje Java
4. Bibliografía
4. Bibliografía
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
3
Índice
Índice
1. Paradigmas de programación
1. Paradigmas de programación
– Tipos de paradigmas
– Tipos de paradigmas
– Evolución de los lenguajes imperativos
– Evolución de los lenguajes imperativos
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
4
Paradigmas Programación
Paradigmas Programación
Especifican la programación como
un conjunto de secuencias
computacionales que se ejecutan
paso a paso
No existe una descripción paso a
paso de cómo llegar a la solución,
sino que el programa se construye
estableciendo hechos, reglas,
restricciones, ecuaciones, etc. Que
debe cumplir el conjunto de valores
que constituyen la solución.
Paradigma
operacional
Paradigmas de
programación
Paradigma
declarativo
Colección de patrones conceptuales
que juntos modelan el proceso de
diseño y, finalmente, determinan la
estructura del programa.
Paradeigma = Modelo
Se provee al sistema de soluciones
a problemas similares y se deja que
generalice una solución a partir de
estos ejemplos.
Paradigma
imperativo
Paradigma de orien-
tación a objetos
Paradigma
funcional
Paradigma
Paradigma
lógico
Paradigma
transformacional
Paradigma
relacional
Paradigma
de inducción
Haskell,
Erlang
Prolog
Prolog
Sistemas
basados en
reglas
SQL
Paradigma
demostrativo
Paradigma de redes
de neuronas
Paradigma
genético
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
5
Evolución Lenguajes
Evolución Lenguajes
Imperativos
Imperativos
Procedimientos
Programa
Programa principal
datos
Estructuras
básicas de
diseño
diseño
Programa
Programa principal
datos
Programación
no estructurada
Programación
procedimental
Programación
Programación
estructurada
Procedimiento #1
datos #1
Procedimiento #2
datos #2
Procedimiento #3
datos #3
Procedimiento #1.1
datos #1.1
Procedimiento #1.2
datos #1.2
Procedimiento #3.1
datos #1.3
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
6
Evolución Lenguajes
Evolución Lenguajes
Imperativos
Imperativos
Programación
no estructurada
Programación
procedimental
Programación
Programación
estructurada
Programación
modular
Tipos
abstractos de
datos
Programación
orientada objetos
Procedimientos
Estructuras
básicas de
diseño
diseño
Encapsulación
en módulos
Instanciación
Herencia,
polimorfismo,
etc.
Programa
Programa principal
datos
Modulo #1
Modulo #2
Parte pública
datos públicos #1
Parte privada
Parte privada
datos privados #1
Procedimiento #1.1
datos #1.1
Procedimiento #1.2
datos #1.2
Parte pública
datos públicos #2
Parte privada
Parte privada
datos privados #2
Procedimiento #2.1
datos #2.1
Procedimiento #2.2
datos #2.2
Programa
Objeto #2
datos #2
Objeto #1
datos #1
Objeto #5
datos #5
Objeto #3
datos #3
Objeto #4
datos #4
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
7
Índice
Índice
3. Programación orientada a objetos
3. Programación orientada a objetos
– Introducción
– Introducción
– Top-down vs. Bottom-up
– Top-down vs. Bottom-up
– Ventajas de la POO
– Ventajas de la POO
– Ventajas de la POO
– Ventajas de la POO
– Inconvenientes de la POO
– Inconvenientes de la POO
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
8
Prog. Orientada a Objetos
Prog. Orientada a Objetos
Introducción
Introducción
• Características
• Características
– Cambio de notación:
– Cambio de notación:
• tipos fi
• tipos fi
• variables fi
• variables fi
clases
clases
objetos.
objetos.
– Nuevas características OO no presentes en los TADs
– Nuevas características OO no presentes en los TADs
– Nuevas características OO no presentes en los TADs
– Nuevas características OO no presentes en los TADs
• Herencia:
• Herencia:
– Las clases pueden establecer relaciones de generalización-
– Las clases pueden establecer relaciones de generalización-
especialización de forma que, implícitamente, las clases
especialización de forma que, implícitamente, las clases
especializadas hereden propiedades de las clases genéricas
especializadas hereden propiedades de las clases genéricas
• Polimorfismo:
• Polimorfismo:
– Capacidad de una subclase de actuar como si fuera su
– Capacidad de una subclase de actuar como si fuera su
superclase
superclase
– La nueva filosofía de programación se orienta a la
– La nueva filosofía de programación se orienta a la
estructura de los datos en vez de a la estructura de
estructura de los datos en vez de a la estructura de
las funciones
las funciones
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
9
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
Prog. Orientada a Objetos
Prog. Orientada a Objetos
Top-down vs. Bottom-up
Top-down vs. Bottom-up
• Diseño top-down o descomposición funcional
• Diseño top-down o descomposición funcional
– Características
– Características
• Consiste en ir descomponiendo el programa en piezas más
• Consiste en ir descomponiendo el programa en piezas más
pequeñas y manejables (subrutinas, funciones o procedimientos).
pequeñas y manejables (subrutinas, funciones o procedimientos).
1
1.1
1.2
1.3
– Problemas
– Problemas
1.2.1
1.2.2
• No favorece la reutilización porque las funciones de más bajo nivel
• No favorece la reutilización porque las funciones de más bajo nivel
desarrolladas son muy dependientes del problema que pretenden
desarrolladas son muy dependientes del problema que pretenden
resolver y de los datos globales existentes en el programa en el
resolver y de los datos globales existentes en el programa en el
que se incluyen.
que se incluyen.
• Se ve muy afectado por cambios en los requisitos funcionales.
• Se ve muy afectado por cambios en los requisitos funcionales.
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
10
Prog. Orientada a Objetos
Prog. Orientada a Objetos
Top-down vs. Bottom-up
Top-down vs. Bottom-up
• Diseño Bottom-up
• Diseño Bottom-up
– Filosofía de la orientación a objetos
– Filosofía de la orientación a objetos
• Se trata de identificar cómo es la estructura de datos del programa
• Se trata de identificar cómo es la estructura de datos del programa
y qué interacciones aparecen entre los distintos datos.
y qué interacciones aparecen entre los distintos datos.
• A partir de los datos y sus interacciones se desarrollan las
• A partir de los datos y sus interacciones se desarrollan las
• A partir de los datos y sus interacciones se desarrollan las
• A partir de los datos y sus interacciones se desarrollan las
funciones que produzcan las salidas adecuadas
funciones que produzcan las salidas adecuadas
• El programa se compone de una serie de objetos con un estado
• El programa se compone de una serie de objetos con un estado
interno propio y que interactúan intercambiando mensajes
interno propio y que interactúan intercambiando mensajes
– Ejemplo
– Ejemplo
• Para realizar un juego de cartas empezamos realizando los objetos
• Para realizar un juego de cartas empezamos realizando los objetos
carta, mazo, tapete, jugador, etc.
carta, mazo, tapete, jugador, etc.
• Los objetos se prueban de forma independiente y posteriormente
• Los objetos se prueban de forma independiente y posteriormente
se integran para formar el juego (bottom-up)
se integran para formar el juego (bottom-up)
• Los objetos son fácilmente reutilizables para cualquier otro juego
• Los objetos son fácilmente reutilizables para cualquier otro juego
de cartas
de cartas
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
11
Prog. Orientada a Objetos
Prog. Orientada a Objetos
Ventajas
Ventajas
• Reutilización
• Reutilización
– Los objetos bien diseñados pueden utilizarse como base de
– Los objetos bien diseñados pueden utilizarse como base de
otros sistemas, que se con
Comentarios de: Programación Orientada a Objetos - Tema 1: Introducción (0)
No hay comentarios