Existe troca de mensagens entre classes

6 respostas
F

Bom dia pessoal!
sou novo em programação e estou com uma dúvida…
são apenas os objetos que trocam mensagens? ou existe a possibilidade de classes também receber / enviar mensagem?

Aguardo,
Fernando

6 Respostas

Z

trocar mensagem como tipo um chat?
um objeto é tipo uma “implementação de uma classe”, a classe é apenas um “contrato”.
Assim o objeto existe na memória com os atributos definidos na classe.

adriano_si

Defina o que você entende por mensagem. Talvez seja só o conceito de mensgagem que está fora de contexto. :wink:

F

Em textos que li sobre POO encontrei essas (entre outras) definições:

  • Objetos se comunicam por meio de mensagens;
  • Uma mensagem é um sinal enviado a um objeto requisitando a execução de um serviço através da execução de uma operação.

A minha dúvida é:
Essa troca de mensagem é exclusivo dos objetos?
Uma mensagem pode ser enviada a uma classe (invocando um método estático)?

Obrigado,
Fernando

adriano_si

As 2 perguntas me são meio que confusas, mas vou com base no que sei de Java. Talvez a troca de mensagem a que se refira os textos de OO que você leu, queiram dizer a chamadas de métodos entre objetos.

No Java, imagine o seguinte cenário:

public class Aviao {
    private Turbina turbinaEsquerda;
    private Turbina turbinaDireita;

    public void iniciarDecolagem() {
         turbinaEsquerda.acionar();
         turbinaDireita.acionar();
         
         // executa outras ações 
    }
}
public class Turbina {
    
    public void acionar() {
         // executa as ações para acionar a turbina 
    }
}

Perceba que o Objeto Avião possui 2 Objetos do tipo Turbina. Quando você chama a ação (método) de iniciar a decolagem, o Aviao passa para os 2 Objetos Turbina a responsabilidade de executarem suas ações, ficando então dividida a responsabilidade de ações entre os Objetos.

Talvez por isso a palavra “Mensagem” ficou confusa pra mim, pois não passa de uma troca de responsabilidade de ações em minha cabeça (posso mudar se alguém conseguir me explicar).

Pense na classe como se fosse um Objeto no Papel (legível para um humano). Quando você faz new Aviao() nesse momento é que passa a existir um Objeto, já o Aviao.class(que existirá após o programa ser compilado) é apenas uma definição das características e comportamento dos Objetos do tipo dessa classe. Porém quando você cria um static em Java, você está criando uma variável de classe que será única e ficará em memória, podendo ser usada sem a necessidade de criar um Objeto dessa classe. Então, novamente a palavra mensagem me pareceu estranha e fora do contexto.

Abs []

F

Adriano_si, realmente é confuso mas acho já me esclareceu muito.

Obrigado,
Abraço

adriano_si

É costume. Eu indico o livro “Use a Cabeça, Java”. Foi o que melhor me explicou o funcionamento de Objetos em Java.

Abs []

Criado 17 de outubro de 2014
Ultima resposta 17 de out. de 2014
Respostas 6
Participantes 3