PDF de programación - Programación Orientada a Objetos - Tema 1: Introducción

Imágen de pdf Programación Orientada a Objetos - Tema 1: Introducción

Programación Orientada a Objetos - Tema 1: Introduccióngráfica de visualizaciones

Publicado el 4 de Julio del 2017
2.107 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













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
  • Links de descarga
http://lwp-l.com/pdf4830

Comentarios de: Programación Orientada a Objetos - Tema 1: Introducción (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad