Considere a existência de duas pessoas, identificadas nas figuras que se seguem como Emissor e Receptor. Quando o Emissor envia uma mensagem para o Receptor a situação esperada é que o Receptor compreenda esta mensagem e passe a executar uma ação em resposta a esta mensagem.
Pode ocorrer , contudo, que a mensagem não seja reconheciada pelo Receptor, ou seja, que o Receptor não conheça nenhuma ação que lhe permita atender à solicitação do Emissor. Neste caso há uma situação de conflito (erro) pois o receptor não sabe como tratar a mensagem.
A comunicação dos objetos na Programaçao Orientada a Objetos procura imitar este modelo de interação entre os . Note que a mensagem
Para exemplificar, considere a interação com o objeto/Ator
caneta do Mundo dos Atores
conforme descrita a seguir:
![]() |
Um estado qualquer da caneta. |
![]() |
É enviada a mensagem anda: para a a caneta, sendo o
número 50 passado como argumento da mensagem.
Em resposta a esta mensagem, a caneta executa a ação de mesmo nome (#anda: é uma das ações primitivas da caneta), resultando num deslocamento de 50 unidades para frente (na direção para onde ela está apontando). |
![]() |
É enviada a mensagem gira: para a a caneta, sendo o
número -45 passado como argumento da mensagem.
Em resposta a esta mensagem, a caneta executa a ação de mesmo nome (#gira: é uma das ações primitivas da caneta), resultando giro de 45 gráus no sentido anti-horário. |
Na Programação Orientada a Objetos toda computação é ativada pelo envio de mensagens aos objetos. Em resposta a esta mensagem o objeto executa uma ação correspondente. Esta ação é descrita por meio de um método específico que realiza esta computação.
Considere, agora, o comando "caneta desenhaCasa". Sua execução vai gerar uma situação de erro pois a caneta não conhece (não faz parte de seu comportamento) nenhuma ação que lhe possibilite responder à mensagem #desenhaCasa. A figura que se segue mostra esta situação de erro. Note que no topo da janela aparece o motivo: A "Caneta" não entende "desenhaCasa".
![]() |
![]() |