tema1-b poo

Anuncio
TEMA 1-B. PROGRAMACIÓN ORIENTADA A OBJETOS
PROF. ELIECER ESPINOSA
INTRODUCCIÓN
Hoy por hoy una de las áreas más candentes en la industria y en el ámbito académico es la
orientación a objetos. La orientación a objetos promete mejoras de amplio alcance en la forma de
diseño, desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a los
problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software: la
falta de portabilidad del código y reusabilidad, código que es difícil de modificar, ciclos de
desarrollo largos y técnicas de codificación no intuitivas.
DEFINICIÓN PROGRAMACIÓN ORIENTADA A OBJETOS O POO
La programación orientada a objetos o POO (OOP según sus siglas en
inglés) es un paradigma de programación que usa los objetos en sus
interacciones, para diseñar aplicaciones y programas informáticos.
Está basado en varias técnicas, incluyendo herencia, cohesión,
abstracción, polimorfismo, acoplamiento y encapsulamiento.
Los conceptos de la programación orientada a objetos tienen origen en
Simula 67, un lenguaje diseñado para hacer simulaciones, creado por OleJohan Dahl y Kristen Nygaard, del Centro de Cómputo Noruego en Oslo.
En este centro se trabajaba en simulaciones de naves, que fueron confundidas por la explosión
combinatoria de cómo las diversas cualidades de diferentes naves podían afectar unas a las otras.
La idea surgió al agrupar los diversos tipos de naves en diversas clases de objetos, siendo
responsable cada clase de objetos de definir sus propios datos y comportamientos. Fueron
refinados más tarde en Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versión
fue escrita sobre Basic) pero diseñado para ser un sistema completamente dinámico en el cual los
objetos se podrían crear y modificar "sobre la marcha" (en tiempo de ejecución) en lugar de tener
un sistema basado en programas estáticos.
ELEMENTO FUNDAMENTAL DE LA OOP
El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Lo podemos definir
como un conjunto complejo de datos y programas que poseen estructura y forman parte
de una organización.
Los objetos son entidades que tienen un determinado estado, comportamiento (método) e
identidad:
El estado está compuesto de datos o informaciones; serán uno o varios atributos a los que se
habrán asignado unos valores concretos (datos).
El comportamiento está definido por los métodos o mensajes a los que sabe responder dicho
objeto, es decir, qué operaciones se pueden realizar con él.
La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras palabras,
es su identificador (concepto análogo al de identificador de una variable o una constante).
PROGRAMACIÓN DE COMPUTADORAS – 12°
Página 1
TEMA 1-B. PROGRAMACIÓN ORIENTADA A OBJETOS
PROF. ELIECER ESPINOSA
ESTRUCTURA DE UN OBJETO
Un objeto puede considerarse como una especie de cápsula dividida en tres partes:
1 - RELACIONES
2 - PROPIEDADES
3 - METODOS
Cada uno de estos componentes desempeña un papel totalmente independiente:
 Las relaciones permiten que el objeto se inserte en la organización y están formadas
esencialmente por punteros a otros objetos.
 Las propiedades distinguen un objeto determinado de los restantes que forman parte de la
misma organización y tiene valores que dependen de la propiedad de que se trate.
Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organización.
 Los métodos son las operaciones que pueden realizarse sobre el objeto, que normalmente
estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y
que también pone a disposición de sus descendientes a través de la herencia.
CARACTERISTICAS DE P.O.O
Entre las características básicas de la POO podemos señalar:

Abstracción: Consiste en la generalización conceptual de un determinado conjunto de
objetos y de sus atributos y propiedades, dejando en un segundo término los detalles
concretos de cada objeto. ¿Qué se consigue con la abstracción? Bueno, básicamente pasar
del plano material (cosas que se tocan) al plano mental (cosas que se piensan).

Encapsulación: Se refiere a la capacidad de agrupar y condensar en un entorno con
límites bien definidos distintos elementos. Cuando hablemos de encapsulación en general
siempre nos referiremos, pues, a encapsulación abstracta.

Herencia: Se aplica sobre las clases. O sea, de alguna forma las clases pueden tener
descendencia, y ésta heredará algunas características de las clases “padres”. Si
disponemos las clases con un formato de árbol genealógico, tenderemos lo que se
denomina una estructura jerarquizada de clases.

Polimorfismo: Esta propiedad, como su mismo nombre sugiere múltiples formas, se
refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del
mismo interfaz. O sea, que, en la práctica, un mismo identificador puede tener distintas
formas (distintos cuerpos de función, distintos comportamientos) dependiendo, en
general, del contexto en el que se halle inserto.
Otras características que se pueden ser:
 Modularidad: Se denomina modularidad a la propiedad que permite subdividir una
aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser
tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos
PROGRAMACIÓN DE COMPUTADORAS – 12°
Página 2
TEMA 1-B. PROGRAMACIÓN ORIENTADA A OBJETOS
PROF. ELIECER ESPINOSA
módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al
igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.

Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural, y
cada tipo de objeto expone una interfaz a otros objetos que específica cómo pueden
interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un
objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los
propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros
objetos no puedan cambiar el estado interno de un objeto de manera inesperada,
eliminando efectos secundarios e interacciones inesperadas.

Recolección de basura: Es la técnica por la cual el entorno de objetos se encarga de
destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que
hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe
preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al
crear un nuevo objeto y la liberará cuando nadie lo esté usando.
VENTAJAS Y DESVENTAJAS:
Ventajas:
- Datos separados del Diseño.
- Reutilización del código.
-Entendimiento del programa en el mundo real.
- Fácil entendimiento de la lógica del programa.
- Código simple.
- Fácil documentación y diseño del programa.
- Dinamismo en el manejo de los datos.
- Facilidad en el mantenimiento y expansión.
Desventajas:
- Complejidad para adaptarse.
- Mayor cantidad de código (aunque a la larga no, por la reutilización).
LENGUAJES ORIENTADOS A OBJETOS
Simula (1967) es aceptado como el primer lenguaje que posee las características principales de
un lenguaje orientado a objetos. Fue creado para hacer programas de simulación, en donde los
"objetos" son la representación de la información más importante. Smalltalk (1972 a 1980) es
posiblemente el ejemplo canónico, y con el que gran parte de la teoría de la programación
orientada a objetos se ha desarrollado.
Entre los lenguajes orientados a objetos se destacan los siguientes:



ABAP -> SAP Lenguaje orientado a eventos
ABL Lenguaje de programación de OpenEdge de Progress Software
ActionScript
PROGRAMACIÓN DE COMPUTADORAS – 12°
Página 3











ActionScript 3
Ada
C++
C#
Clarion
Clipper1
D
Object
Pascal
(Embarcadero
Delphi)
Gambas
Genie
Harbour













TEMA 1-B. PROGRAMACIÓN ORIENTADA A OBJETOS
PROF. ELIECER ESPINOSA
Eiffel
 Ruby
Fortran 90/95
 Self
Java
 Smalltalk6
JavaScript2
 Magik (SmallWorld)
Lexico3
 Vala
Objective-C
 VB.NET
Ocaml
 Visual FoxPro7
Oz
 Visual Basic 6.0
R
 Visual DataFlex
Perl4
 Visual Objects
PHP5
 XBase++
PowerBuilder
 Lenguaje DRP
 Scala8
Python
Muchos de estos lenguajes de programación no son puramente orientados a objetos, sino que son
híbridos que combinan la POO con otros paradigmas.
La programación orientada a objetos es un paradigma surgido en los años 70, que utiliza objetos como
elementos fundamentales en la construcción de la solución. Un objeto es una abstracción de algún hecho o
ente del mundo real, con atributos que representan sus características o propiedades, y métodos que
emulan su comportamiento o actividad. Todas las propiedades y métodos comunes a los objetos se
encapsulan o agrupan en clases. Una clase es una plantilla, un prototipo para crear objetos; en general, se
dice que cada objeto es una instancia o ejemplar de una clase.
PROGRAMACIÓN DE COMPUTADORAS – 12°
Página 4
Descargar