Actualizado el 21 de Marzo del 2018 (Publicado el 8 de Marzo del 2018)
678 visualizaciones desde el 8 de Marzo del 2018
361,9 KB
12 paginas
Creado hace 20a (01/06/2004)
Universidad de Carabobo
Facultad Experimental de Ciencias y Tecnología
Departamento de Computación
Programación Orientada a
Objetos
Algoritmos y Programación II
Junio, 2004
Las tecnologías de objetos hoy
Las tecnologías de objetos hoy
(cid:1) Desde los 70 hasta hoy los lenguajes de programación dirigidos a
objetos (u orientados a objetos) han obtenido un éxito y una difusión
sin precedentes.
(cid:1) Hoy en día los lenguajes OO son claramente predominantes sobre los
lenguajes de programación tradicionales
(cid:1) Multitud de librerías y desarrollos tecnológicos actuales están basados
en objetos.
(cid:1) Los métodos de diseño orientado a objetos de aplicaciones están
dominando los tradicionales.
(cid:1) Conocer y dominar los conceptos de la POO es fundamental
1
La evolución de la programación
La evolución de la programación
Lenguajes
de bajo
nivel
Ensamblador
Lenguajes
de alto
nivel
Basic,
COBOL
Lenguajes
estructura-
dos
Modula 2,
Pascal, C
Tipos
abstractos
de datos
Modula 2,
Pascal, C
Programación
orientada a
objetos
SmallTalk,
C++, Java
Lenguajes de bajo nivel:
(cid:1)(cid:1) Lenguajes de bajo nivel:
(cid:2) Cercanos al CPU.
(cid:2) Difíciles para el programador.
(cid:2) Gran cantidad de instrucciones para realizar una tarea.
(cid:2) Justificables por la poca velocidad y memoria principal de los
primeros computadores.
Lenguajes
de bajo
nivel
Ensamblador
Lenguajes
de alto
nivel
Basic,
COBOL
Lenguajes
estructura-
dos
Modula 2,
Pascal, C
Tipos
abstractos
de datos
Modula 2,
Pascal, C
Programación
orientada a
objetos
SmallTalk,
C++, Java
Lenguajes de alto nivel.
(cid:1)(cid:1) Lenguajes de alto nivel.
(cid:2) Mayor nivel de abstracción y acercamiento al hombre.
(cid:2) Inconvenientes:
(cid:1) Los proyectos grandes resultan difíciles de desarrollar,
mantener y depurar.
(cid:1) Dificultades para la programación en equipo.
(cid:1) Escaso grado de reutilización.
(cid:1) Variables accesibles desde cualquier punto
(cid:1) Saltos incondicionales: GOTOs.
2
Lenguajes
de bajo
nivel
Ensamblador
Lenguajes
de alto
nivel
Basic,
COBOL
Lenguajes
estructura-
dos
Modula 2,
Pascal, C
Tipos
abstractos
de datos
Modula 2,
Pascal, C
Programación
orientada a
objetos
SmallTalk,
C++, Java
Lenguajes estructurados.
(cid:1)(cid:1) Lenguajes estructurados.
(cid:2) Intentan solventar
los problemas detectados en
los
lenguajes tradicionales.
(cid:2) Se eliminan los saltos incondicionales y se adopta una
estrategia modular, donde cada variable tiene un ámbito en
la cual es accesible.
(cid:2) Aparecen los procedimientos, como cajas negras que
reciben datos, realizan operaciones y devuelven resultados.
(cid:2) La solución a un problema se plantea en términos de
los cuales resuelve un
procedimientos, cada uno de
subproblema.
Lenguajes estructurados.
(cid:1)(cid:1) Lenguajes estructurados.
(cid:2) Ventajas:
(cid:1) Se facilita la gestión de grandes proyectos software.
(cid:1) La programación modular facilita la programación en
equipo.
(cid:1) Facilita la reutilización del código en distintos proyectos.
(cid:2) Surgen algunas dudas:
(cid:1) Cómo se subdivide un problema en subproblemas. Cómo
se identifican. Hasta cuando hay que subdividir.
(cid:1) Si un procedimiento resuelve parte de un problema
mayor. Será
fácil que pueda reutilizarse en otros
problemas, o será demasiado dependiente y específico
de aquel
(cid:1) Nueva
forma de programación spaghetti: muchos
procedimientos que se llaman entre ellos.
3
(cid:1)(cid:1) Programación mediante
Programación mediante TDAs
TDAs
(cid:2) Un TDA agrupa en una única unidad, los datos y los
procedimientos que lo manipulan.
(cid:2) Cada TDA se implementa en un módulo de programa por
separado, dejando visible solo la interfaz y ocultando los
detalles de implementación.
(cid:1)(cid:1) Programación mediante
Programación mediante TDAs
TDAs
(cid:2) Ventajas:
(cid:1) Los TDAs son fácilmente identificables en un problema:
representan entidades matemáticas
(vector, punto,
polinómio, función, etc.) o estructuras de datos (pilas,
colas, listas, etc.).
(cid:1) Un TDA no resulta específico de ningún problema, por
tanto es fácil su reutilización.
(cid:1) Los TDAs son elegantes, legibles y fáciles de depurar.
(cid:2) Inconvenientes:
(cid:1) Un TDA no es en general una estructura del lenguaje de
programación, por tanto es fácil cometer errores en su
construcción.
(cid:1) Repetición de código entre TDAs similares.
(cid:1) Tradicional limitación a estructuras de datos y objetos
matemáticos.
4
Programación orientada a objetos
(cid:1)(cid:1) Programación orientada a objetos
(cid:2) Los TDAs se formalizan y se extienden con nuevas ideas,
pasando a llamarse objetos.
(cid:2) Nuevos mecanismos: herencia, polimorfismo, etc.
(cid:2) Aparecen lenguajes que los soportan.
(cid:2) El grado de abstracción es el más alto posible, los objetos
representan conceptos del problema que se intenta resolver:
clientes, productos, etc.
Programación orientada a objetos
(cid:1)(cid:1) Programación orientada a objetos
(cid:2) Ventajas:
(cid:1) El desarrollo de aplicaciones es muy sencillo e intuitivo.
(cid:1) El código es muy elegante, fácil de comprender y
mantener.
(cid:1) Los objetos son completamente independientes, por
tanto la facilidad para la programación en equipo y la
reutilización son muy altos.
(cid:2) Inconvenientes:
(cid:1) Al principio resulta difícil resolver un problema mediante
objetos, supone un cambio de mentalidad respecto a la
programación tradicional.
5
Entidades y objetos
Entidades y objetos
(cid:1) Nuestra mente estructura
realidad en elementos que
denominaremos ENTIDADES, que son las unidades básicas del
razonamiento o la memoria.
la
Conocimiento
• Descripción física
• Opinión
• Comparación con
otras entidades
...
Concepto
“Libro”
(cid:1) La POO intenta que el diseño de los programas sean un reflejo
de la realidad.
Entidad
Concepto
“Libro”
Objeto
Identificador
“Libro”
Conocimiento
Características
Conocimiento descriptivo (atributos)
color = azul
peso = 250 gramos
paginas = 320
Conocimiento operacional (métodos
u operaciones)
abrir
cerrar
ir a página (n)
leer página (n)
6
Noción de Objeto
Noción de Objeto
Un objeto esta definido por la información que éste maneja, y por su
comportamiento. En OO, se dice que un objeto encapsula
información y comportamientos:
(cid:1) Las informaciones son los datos incluidos en el objeto, llamados
también atributos, variables de instancias o datos.
(cid:1) Los comportamientos son los tratamientos aplicables al objeto,
llamados también métodos u operaciones.
Atributos
Atributos
Nombre
Nombre
Edad
Edad
Empresa
Empresa
Métodos
Métodos
CambiarEdad
CambiarEdad
CambiarEmpresa
CambiarEmpresa
La encapsulación de
un objeto Persona
NociNociónón de Clase y de Instancia
de Clase y de Instancia
Para manejar la encapsulación, todos los objetos con las mismas
propiedades (atributos y comportamientos) se reúnen en una
familia, a la que se le denomina clase. Donde los objetos que la
conforman son las instancias de la clase.
Una clase describe las propiedades de sus instancias:
(cid:1) Constituye una especie de molde para la creación de objetos. Esta
creación se denomina instanciación.
(cid:1) Recoge
los
tratamientos aplicables a esos objetos. Cada
tratamiento corresponde a un método que se describe por una serie
de líneas de código
7
NociNociónón de Clase y de Instancia
de Clase y de Instancia
(cid:1) La noción de clase puede asimilarse, con la noción de tipo.
(cid:1) Una clase define las propiedades de todos los objetos que tiene
asociados.
(cid:1) Un objeto es una materialización de su clase.
(cid:1) Los objetos de una misma clase tienen todos los atributos de su
clase, y estos atributos pueden tener valores diferentes, según las
instancias.
(cid:1) El valor de los atributos es propio de cada objeto. Por el contrario,
los
instancias de una misma clase comparten
todas
comportamientos definidos en la clase.
las
NociNociónón de Clase y de Instancia
de Clase y de Instancia
Nombre: Pedro
Edad: 30 años
Empresa: UC
Nombre: José
Edad: 40 años
Empresa: UCV
Instanciación
Instanciación
Atributos
Atributos
Nombre
Nombre
Edad
Edad
Empresa
Empresa
Métodos
Métodos
CambiarEdad
CambiarEdad
CambiarEmpresa
CambiarEmpresa
La clase Persona y sus instancias
8
Representación gráfica (notación UML) de una clase
Representación gráfica (notación UML) de una clase
Libro
título
autor
tamaño
número de páginas
abrir
cerrar
ir a página
leer página
Atributos
Métodos
Representación gráfica de un objeto.
b:Libro
título = “Programación orientada a
objetos”
autor = “Timothy Budd”
tamaño = 25x20
número de páginas = 410
Control de los Mensajes
Control de los Mensajes
En OO, se envía un mensaje a un objeto que lo recibe, y éste
puede reaccionar de 2 maneras:
(cid:1) Si el mensaje corresponde a un tratamiento definido en la clase del
objeto, el protocolo del método correspondiente se ejecuta. El
objeto ha respondido en este caso al mensaje que se le ha enviado
(cid:1) Sino, el objeto rechaza el mensaje señalando un error
CambiarNombre(“Rosa”)
Error
¡No comprendo el mensaje!
Objeto Persona: la Sra. Ana
9
Control de los Mensajes
Control de los Mensajes
(cid:1) Se puede considerar que un objeto es responsable del control y
ejecución de los mensajes que se le aplican.
(cid:1) Todo objeto que recibe un mensaje reaciona inmediatamente al
mismo, y avisa al programador la validez del mismo.
(cid:1) El comportamiento de u
Comentarios de: Programación Orientada a Objetos (0)
No hay comentarios