Cursos subvencionados para trabajadores
Realiza el curso gratis a través de tu empresa.
Cursos SubvencionadosTu portal de
formación online
United States
Una aplicación orientada a objetos consiste en un número determinado de objetos que interactuan entre si enviándose mensajes unos a otros para invocar sus métodos. Este intercambio de mensajes facilita su comportamiento, cambios de estado, destrucción o almacenamiento.
Ya que todo lo que un objeto puede realizar está expresado en sus métodos, este simple mecanismo de mensajes soporta todas las posibles interacciones entre ellos.
Mediante el denominado paso de mensajes, un objeto puede solicitar de otro objeto que realice una acción determinada o que modifique su estado. El paso de mensajes se suele implementar como llamadas a los métodos de otros objetos.
Desde el punto de vista de la programación estructurada, esto correspondería con la llamada a funciones.

Diferentes objetos pueden responder a un mismo mensaje de diferentes maneras. El polimorfismo permite a los objetos interactuar entre ellos sin necesidad de conocer previamente a que tipo pertenecen.
Un objeto puede ser de diferentes tipos. Por ejemplo un vehículo automático de carga puede especializarse para cargar bobinas, palets u otro tipo de items. Los demás objetos del sistema no tienen porque saber cuantos tipos de vehículos disponemos. El mismo mensaje cargarItem, acompañado del parámetro que identifica dicho item, será intrepretado de distinta manera por cada objeto receptor, el cual ya conoce previamente como tiene que tratar la naturaleza de su carga: bobinas, palets, etc.
Hay una reducción de esfuerzo muy significativa por el hecho de que cualquier objeto del sistema puede enviar mensajes a los vehículos automáticos de carga sin necesidad de saber de antemano qué tipo de vehículos estan en circulación.
No hay necesidad así de picar un código específico para cada tipo de vehículo, con lo cual, nos ahorramos sentencias IF o CASE que son complejas de mantener y de actualizar cuando se incorporan nuevos tipos de objetos.


Durante la ejecución de un programa, los diversos objetos que lo componen han de interactuar entre sí para lograr una serie de objetivos comunes.
Existen varios tipos de relaciones que pueden unir a los diferentes objetos, pero entre ellas destacan las relaciones de: asociación, todo/parte, y generalización/especialización.
Serían relaciones generales, en las que un objeto realiza llamadas a los métodos de otro, interactuando con él.
Representan las relaciones con menos riqueza semántica.
Muchas veces una determinada entidad existe como conjunción de otras entidades, como un conglomerado de ellas. En este tipo de relaciones un objeto componente se integra en un objeto compuesto. La orientación a objetos recoge este tipo de relaciones como dos conceptos: la agregación y la composición.
La diferencia entre agregación y composición es que mientras que la composición se entiende que dura durante toda la vida del objeto componedor, en la agregación no tiene por qué ser así.
Ejemplo de agregación: un ordenador y sus periféricos. Los periféricos de un ordenador pueden estar o no, se pueden compartir entre ordenadores y no son propiedad de ningún ordenador.
Ejemplo de composición: un árbol y sus hojas. Un árbol está íntimamente ligado a sus hojas. Las hojas son propiedad exactamente de un árbol, no se pueden compartir entre árboles y cuando el árbol muere, las hojas lo hacen con él.
A veces sucede que dos clases tiene muchas de sus partes en común, lo que normalmente se abstrae en la creación de una tercera clase (padre de las dos) que reúne todas sus características comunes.
El ejemplo más extendido de este tipo de relaciones es la herencia, propiedad por la que una clase (clase hija) recoge aquellos métodos y atributos que una segunda clase (clase padre) ha especificado como "heredables".
Este tipo de relaciones es característico de la programación orientada a objetos.
En realidad, la generalización y la especialización son diferentes perspectivas del mismo concepto, la generalización es una perspectiva ascendente (bottom-up), mientras que la especialización es una perspectiva descendente (top-down).
Toda clase encapsula unos elementos (atributos y operaciones) que disponen de ciertos criterios de visibilidad y manipulación para otras clases.
Los elementos públicos(+) pueden ser usados por cualquier otra clase.
Los elementos privados(-) pueden ser usados sólo por la clase propietaria.
Los elementos protegidos(#) pueden ser usados por la subclases y por la clases del mismo paquete.
Cada plataforma de desarrollo (C#, C++, Smalltalk, Java) desarrolla sus propias reglas con respecto a la visibilidad y manipulación de atributos y operaciones.
Copyright 2012© ADR Infor S.L. | Tel.: +34 941 250 116 · Fax: +34 941 236 805 · skype: adrformacion.com
Email |
Política de Privacidad |
Aviso Legal |
Área Privada