Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduccin[editar]
El estado est compuesto de datos o informaciones; sern uno o varios atributos a los que
se habrn asignado unos valores concretos (datos).
El comportamiento est definido por los mtodos 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 anlogo al de identificador de una variable o
una constante).
Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a otros objetos
pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores
bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interaccin
llamados mtodos, que favorecen la comunicacin entre ellos. Esta comunicacin favorece a su vez
el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades
indivisibles, en las que no se separa el estado y el comportamiento.
Origen[editar]
Los conceptos de la programacin orientada a objetos tienen origen en Simula 67, un lenguaje
diseado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard, del Centro de
Cmputo Noruego en Oslo. En este centro se trabajaba en simulaciones de naves, que fueron
confundidas por la explosin combinatoria de cmo las diversas cualidades de diferentes naves
podan 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 ms tarde en Smalltalk, desarrollado en Simula en Xerox
PARC (cuya primera versin fue escrita sobre Basic) pero diseado para ser un sistema
completamente dinmico en el cual los objetos se podran crear y modificar "sobre la marcha" (en
tiempo de ejecucin) en lugar de tener un sistema basado en programas estticos.
Conceptos fundamentales[editar]
La programacin orientada a objetos es una forma de programar que trata de encontrar una
solucin a estos problemas. Introduce nuevos conceptos, que superan y amplan conceptos
antiguos ya conocidos. Entre ellos destacan los siguientes:
Clase
Herencia
(Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual la clase D hereda
en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones
hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos mtodos y variables
pblicas declaradas en C. Los componentes registrados como "privados" (private) tambin se
heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y slo
pueden ser accedidos a travs de otros mtodos pblicos. Esto es as para mantener hegemnico
el ideal de POO.
Objeto
Mtodo
Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se desencadena tras la
recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede
hacer. Un mtodo puede producir un cambio en las propiedades del objeto, o la generacin de un
"evento" con un nuevo mensaje para otro objeto del sistema.
Evento
Es un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje
enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto
pertinente. Tambin se puede definir como evento la reaccin que puede desencadenar un objeto;
es decir, la accin que genera.
Atributos
Mensaje
Una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos
parmetros asociados al evento que lo gener.
Propiedad o atributo
Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los
datos visibles desde fuera del objeto y esto se define como sus caractersticas predeterminadas, y
cuyo valor puede ser alterado por la ejecucin de algn mtodo.
Estado interno
Es una variable que se declara privada, que puede ser nicamente accedida y alterada por un
mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase
de objetos). No es visible al programador que maneja una instancia de la clase.
Componentes de un objeto
Identificacin de un objeto
Un objeto se representa por medio de una tabla o entidad que est compuesta por sus atributos y
funciones correspondientes.
Caractersticas de la POO[editar]
Abstraccin
Denota las caractersticas esenciales de un objeto, donde se capturan sus comportamientos. Cada
objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo,
informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cmo se
implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin ser
abstrados, y, cuando lo estn, una variedad de tcnicas son requeridas para ampliar una
abstraccin. El proceso de abstraccin permite seleccionar las caractersticas relevantes dentro de
un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el
mundo real. La abstraccin es clave en el proceso de anlisis y diseo orientado a objetos, ya que
mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el
problema que se quiere atacar.
Encapsulamiento
Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad,
al mismo nivel de abstraccin. Esto permite aumentar la cohesin de los componentes del sistema.
Algunos autores confunden este concepto con el principio de ocultacin, principalmente porque se
suelen emplear conjuntamente.
Modularidad
Principio de ocultacin
Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone
una interfaz a otros objetos que especifica cmo pueden interactuar con los objetos de la clase. El
aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga
derecho a acceder a ellas; solamente los propios mtodos 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. Algunos
lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una
manera controlada y limitando el grado de abstraccin. La aplicacin entera se reduce a un
agregado o rompecabezas de objetos.
Polimorfismo
Herencia
Las clases no se encuentran aisladas, sino que se relacionan entre s, formando una jerarqua de
clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases a las
que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo
a los objetos ser definidos 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
reflejan un comportamiento comn. Cuando un objeto hereda de ms de una clase se dice que
hayherencia mltiple; siendo de alta complejidad tcnica por lo cual suele recurrirse a la herencia
virtual para evitar la duplicacin de datos.
Recoleccin de basura
Resumen[editar]
La programacin orientada a objetos es un paradigma surgido en los aos 70, 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.
ActionScript
ActionScript 3
Ada
C++
C#
Clarion
Clipper1
Gambas
Genie
Harbour
Eiffel
Fortran 90/95
Java
JavaScript2
Lexico3
Objective-C
Ocaml
Oz
Perl4
PHP5
PowerBuilder
Python
Ruby
Self
Smalltalk6
Magik (SmallWorld)
Vala
VB.NET
Visual FoxPro7
Visual DataFlex
Visual Objects
XBase++
Lenguaje DRP
Scala8