PDF de programación - Programación Orientada a Objetos

Imágen de pdf Programación Orientada a Objetos

Programación Orientada a Objetosgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 8 de Marzo del 2018)
597 visualizaciones desde el 8 de Marzo del 2018
361,9 KB
12 paginas
Creado hace 19a (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
  • Links de descarga
http://lwp-l.com/pdf9306

Comentarios de: Programación Orientada a Objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad