Los objetos realizan acciones cuando reciben mensajes y solo es posible acceder a estos objetos a través de su interfaz pública.
Los métodos son procedimientos que son invocados cuando un objeto recibe un mensaje. En la programación tradicional, un mensaje se correspondería con la llamada a una función.
Nota
Mientras que un método es el procedimiento o función que es invocado para actuar sobre un objeto, el mensaje se refiere a la petición realizada.
Un mensaje es la petición de un objeto a otro, al que le solicita ejecutar uno de sus métodos, por lo que se establece el convenio de denominar “emisor” al objeto que envía la petición y “receptor” al que la recibe.
En la estructura de un mensaje, se identifican los siguientes elementos:
El objeto receptor que recibe la petición.
El método que se desea ejecutar en el objeto receptor.
Los parámetros que necesita el método para ejecutar la acción.
La información que devuelve el método tras su ejecución.
Una vez que el receptor acepta el mensaje, ejecuta la acción que corresponda y, en algunos casos, retornará un valor.
El emisor solo necesita saber la estructura de los mensajes que aceptará el receptor, es decir, el nombre de sus métodos, los valores que recibe y los que devuelve; no es necesario conocer cómo se ejecutarán las acciones que dan respuesta a la petición. Una vez que el receptor acepta un mensaje, es el responsable de llevarlo a cabo.
La principal diferencia de un mensaje con respecto a la llamada a una función de la programación tradicional está en la obligación que tienen los mensajes de identificar al objeto receptor; de hecho, la interpretación del mensaje será diferente dependiendo del receptor.
Aunque haya objetos de diferentes clases que tengan métodos con el mismo nombre y parámetros, las acciones a ejecutar podrán ser diferentes. El mismo mensaje originará acciones distintas en función de a quién vaya dirigido.
Ejemplo
De la clase “curso” podrán instanciarse tantos objetos como cursos se deseen gestionar. Para el curso de “Contabilidad Financiera” se creará el objeto “contabilidad”, para el de “Gestión de Redes” el objeto “redes”, etc.
Todos estos objetos son instancias de la misma clase, por lo que tienen los mismos métodos y atributos (con valores diferentes); pero reciben mensajes diferentes, ya que cambia el objeto receptor del mensaje.
Un mismo objeto también recibe mensajes diferentes al ejecutar cada uno de sus métodos.
También es posible ejecutar un método con distintos parámetros, por lo que cambiará el correspondiente mensaje.
La orientación a objetos aporta un nuevo enfoque al desarrollo de software, ya que obliga a cambiar la forma de pensar para realizar la descomposición del problema y el diseño de la aplicación.
Los programas se estructuran como colecciones de objetos que interactúan entre sí. Cada objeto es una instancia de una clase, que encapsula los datos y las operaciones para abstraer un determinado concepto.
La ocultación de la información va a permitir que pueda definirse el tipo de acceso a los elementos de una clase, haciendo posible diferenciar la interfaz pública de su implementación interna.
Los objetos se comunican entre sí a través de mensajes. Cada mensaje se corresponde con la ejecución de un método sobre el objeto de destino, que será el responsable de ejecutar la operación correspondiente y generar una respuesta.

Ejercicios de repaso y autoevaluación
1.En relación a la orientación a objetos, ¿qué afirmación es la más adecuada?
a.La ocultación de información dificulta la comprensión del código, ya que el programador no puede ver su implementación.
b.Hace más compleja la reutilización, ya que obliga a tener que reescribir el código para cada clase.
c.El encapsulado de datos y procedimientos facilita la descomposición del sistema en elementos más pequeños.
d.Las aplicaciones creadas son difíciles de mantener, ya que los objetos están muy interconectados y cualquier cambio implica la modificación los demás.
2.De las siguientes afirmaciones, indique cuál es verdadera o falsa.
La programación estructurada y modular son complementarias.
Verdadero
Falso
La programación orientada a objetos es un complemento a la programación estructurada y modular.
Verdadero
Falso
Una clase permite abstraer las características y el comportamiento de una entidad del mundo real.
Verdadero
Falso
La ocultación impide que pueda diferenciarse el interfaz de la implementación.
Verdadero
Falso
3.Complete la siguiente frase.
Las aplicaciones orientadas a objetos están formadas por un conjunto de _____________ que interaccionan entre sí enviándose _____________. Los objetos similares se abstraen en _____________, que son las que definen su comportamiento. Se dice que un _____________ es una instancia de una _____________.
4.¿Qué término define el concepto de aislar un elemento de su contexto o del resto de los elementos que lo acompañan?
a.Visibilidad.
b.Abstracción.
c.Ocultación.
d.Herencia.
5.A la hora de definir la visibilidad de los elementos de una clase, indique la recomendación que es incorrecta.
a.Los atributos deberían ser privados, para que solo sean modificados mediante métodos de la propia clase.
b.Los métodos que definan operaciones externas deben ser públicos.
c.Los métodos que definan operaciones internas que van a ser utilizadas por las clases derivadas deberían ser privados.
d.Es posible crear atributos públicos.
6.De las siguientes afirmaciones, marque la incorrecta.
a.La abstracción y el encapsulamiento son conceptos similares.
Читать дальше