Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación Orientada A Objetos
Programación Orientada A Objetos
2 Origen
Introduccin
CARACTERSTICAS DE LA POO
3
y, cuando lo estn, una variedad de tcnicas son rela encapsulacin, los lenguajes soportan la modulaqueridas para ampliar una abstraccin. El proceso
ridad de diversas formas.
de abstraccin permite seleccionar las caracterstiPrincipio de ocultacin Cada objeto est aislado del
cas relevantes dentro de un conjunto e identicar
exterior, es un mdulo natural, y cada tipo de objeto
comportamientos comunes para denir nuevos tiexpone una interfaz a otros objetos que especica
pos de entidades en el mundo real. La abstraccin
cmo pueden interactuar con los objetos de la clase.
es clave en el proceso de anlisis y diseo orientado
El aislamiento protege a las propiedades de un oba objetos, ya que mediante ella podemos llegar a arjeto contra su modicacin por quien no tenga demar un conjunto de clases que permitan modelar la
recho a acceder a ellas; solamente los propios mtorealidad o el problema que se quiere atacar.
dos internos del objeto pueden acceder a su estado.
Esto asegura que otros objetos no puedan cambiar
Encapsulamiento Signica reunir todos los elementos
el estado interno de un objeto de manera inesperaque pueden considerarse pertenecientes a una misda, eliminando efectos secundarios e interacciones
ma entidad, al mismo nivel de abstraccin. Esto perinesperadas. Algunos lenguajes relajan esto, permimite aumentar la cohesin (diseo estructurado) de
tiendo un acceso directo a los datos internos del oblos componentes del sistema. Algunos autores conjeto de una manera controlada y limitando el grado
funden este concepto con el principio de ocultacin,
de abstraccin. La aplicacin entera se reduce a un
principalmente porque se suelen emplear conjuntaagregado o rompecabezas de objetos.
mente.
Polimorsmo Comportamientos diferentes, asociados a Recoleccin de basura La recoleccin de basura (garbage collection) es la tcnica por la cual el entorno
objetos distintos, pueden compartir el mismo nomde objetos se encarga de destruir automticamenbre; al llamarlos por ese nombre se utilizar el comte, y por tanto desvincular la memoria asociada, los
portamiento correspondiente al objeto que se est
objetos que hayan quedado sin ninguna referencia
usando. O, dicho de otro modo, las referencias y
a ellos. Esto signica que el programador no debe
las colecciones de objetos pueden contener objetos
preocuparse por la asignacin o liberacin de mede diferentes tipos, y la invocacin de un compormoria, ya que el entorno la asignar al crear un nuetamiento en una referencia producir el comportavo objeto y la liberar cuando nadie lo est usando.
miento correcto para el tipo real del objeto refeEn la mayora de los lenguajes hbridos que se exrenciado. Cuando esto ocurre en tiempo de ejecutendieron para soportar el Paradigma de Programacin, esta ltima caracterstica se llama asignacin
cin Orientada a Objetos como C++ u Object Pastarda o asignacin dinmica. Algunos lenguajes
cal, esta caracterstica no existe y la memoria debe
proporcionan medios ms estticos (en tiempo de
desasignarse expresamente.
compilacin) de polimorsmo, tales como las plantillas y la sobrecarga de operadores de C++.
Herencia Las clases no se encuentran aisladas, sino que
se relacionan entre s, formando una jerarqua de
clasicacin. Los objetos heredan las propiedades
y el comportamiento de todas las clases a las que
pertenecen. La herencia organiza y facilita el polimorsmo y el encapsulamiento, permitiendo a los
objetos ser denidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que
volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en rboles o enrejados que reejan un comportamiento
comn. Cuando un objeto hereda de ms de una clase se dice que hay herencia mltiple; siendo de alta
complejidad tcnica por lo cual suele recurrirse a la
herencia virtual para evitar la duplicacin de datos.
Modularidad Se denomina modularidad a la propiedad que permite subdividir una aplicacin en partes
ms pequeas (llamadas mdulos), cada una de las
cuales debe ser tan independiente como sea posible
de la aplicacin en s y de las restantes partes. Estos mdulos se pueden compilar por separado, pero
tienen conexiones con otros mdulos. Al igual que
5 Resumen
La POO es un paradigma surgido en los aos 1970, que
utiliza objetos como elementos fundamentales en la construccin de la solucin. Un objeto es una abstraccin de
algn hecho o ente del mundo real, con atributos que representan sus caractersticas o propiedades, y mtodos
que emulan su comportamiento o actividad. Todas las
propiedades y mtodos 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.
Smalltalk (1972 a 1980) es posiblemente el ejemplo cannico, y con el que gran parte de la teora de la programacin orientada a objetos se ha desarrollado.
Smalltalk[10]
Vala
ABAP
[2]
ABL[3]
ActionScript
ActionScript 3
Ada
C++
C
C Sharp (C#)
Clarion
Clipper[4]
D
Object Pascal (Embarcadero Delphi)
Gambas
GObject
Genie
Harbour
NOTAS Y REFERENCIAS
Magik (SmallWorld)
VB.NET
Visual FoxPro[11]
Visual Basic 6.0
Visual DataFlex
Visual Objects
XBase++
DRP
Scala[12][13]
Muchos de estos lenguajes de programacin no son puramente orientados a objetos, sino que son hbridos que
combinan la POO con otros paradigmas.
Al igual que C++, otros lenguajes, como OOCOBOL,
OOLisp, OOProlog y Object REXX, han sido creados
aadiendo extensiones orientadas a objetos a un lenguaje
de programacin clsico.
Un nuevo paso en la abstraccin de paradigmas de programacin es la Programacin Orientada a Aspectos
(POA). Aunque es todava una metodologa en estado de
maduracin, cada vez atrae a ms investigadores e incluso
proyectos comerciales en todo el mundo.
Eiel
Fortran 90/95
7 Vase tambin
Java
JavaScript[5]
Lexico[6]
Objective-C
Ocaml
Oz
R
Pauscal (en espaol)
Perl[7][8]
PHP[9]
PowerBuilder
Python
8 Notas y referencias
[1] Coad, P; Yourdon, E. (1991). Prentice-Hall International editions, ed. Object-oriented Design. ISBN
9780136300700.
[2] SAP Business Suite (de la empresa SAP AG), lenguaje
orientado a eventos.
[3] Lenguaje de programacin de OpenEdge de Progress
Software.
[4] Versin 5.x con librera de objetos Class(y).
Ruby
Self
[6] En espaol.
Enlaces externos
Qu es la programacin orientada a objetos.
10
10.1
10.2
Imgenes
Archivo:Commons-emblem-question_book_orange.svg
Fuente:
https://upload.wikimedia.org/wikipedia/commons/1/1f/
Commons-emblem-question_book_orange.svg Licencia: CC BY-SA 3.0 Colaboradores: <a href='//commons.wikimedia.org/wiki/File:
Commons-emblem-issue.svg' class='image'><img alt='Commons-emblem-issue.svg' src='https://upload.wikimedia.org/wikipedia/
commons/thumb/b/bc/Commons-emblem-issue.svg/25px-Commons-emblem-issue.svg.png' width='25' height='25' srcset='https:
//upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Commons-emblem-issue.svg/38px-Commons-emblem-issue.svg.png
1.5x,
https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Commons-emblem-issue.svg/50px-Commons-emblem-issue.svg.png 2x'
data-le-width='48' data-le-height='48' /></a> + <a href='//commons.wikimedia.org/wiki/File:Question_book.svg' class='image'><img
alt='Question
book.svg'
src='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/25px-Question_
book.svg.png' width='25' height='20' srcset='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/
38px-Question_book.svg.png 1.5x, https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/50px-Question_
book.svg.png 2x' data-le-width='252' data-le-height='199' /></a> Artista original: GNOME icon artists, Jorge 2701
10.3