Cursos / Redes de Computadores / Programação Orientada a Objetos / Aula

arrow_back Aula 06 - Composição ou Agregação

A Composição e o Método Construtor

Os métodos construtores das classes componentes (Motor,Direção) que fazem parte da classe composta (Automóvel) podem ser chamados de três maneiras diferentes, são elas:

  • CASO 1: chamadas nos construtores da classe que é composta;
  • CASO 2: chamadas em qualquer método da classe que é composta;
  • CASO 3: chamadas fora da classe que é composta.

Para mostrar cada uma dessas situações, vamos considerar inicialmente que a classe Automóvel é composta apenas pela classe Motor. Acrescentamos dois métodos construtores para a classe Motor. O primeiro utiliza a potência do motor 1000 (por default), já o segundo espera que o usuário forneça a informação da potência do motor quando criado o objeto Motor, veja a Listagem 5.

Listagem 5 - Classe Motor com dois construtores
Listagem 6 - Classe Automóvel composta pela classe Motor
  • CASO 1: Chamadas nos construtores da classe que é composta

    Para a primeira situação, quando o construtor da classe componente é chamado no construtor da classe que usa a composição, ilustrada na Listagem 7, temos:

    Listagem 7 - Classe Automóvel com dois métodos construtores

    Nesse exemplo, os construtores da classe Motor são chamados dentro dos construtores da classe Automóvel.

  • CASO 2: chamadas em qualquer método da classe que é composta

    Outra maneira seria a situação, na qual os construtores são chamados em qualquer método da classe que é composta. Vejamos a Listagem 8:

    Listagem 8 - Construtor chamado a partir de um método
  • CASO 3: chamadas fora da classe que é composta

    Por fim, a terceira situação, onde o construtor da classe componente é chamado de fora da classe que usa a composição, veja a Listagem 9. Considere que a classe Automóvel utilizada possui o código apresentado na Listagem 6.

    Listagem 9 - Criação da classe Motor fora da classe Automóvel

    Observe que o construtor da classe Motor foi chamado de fora da classe Automóvel, dentro do método main() da classe. Ou seja, antes de usar o método setMotor() o objeto motor não tem nenhum vínculo com o objeto automóvel.

Versão 5.3 - Todos os Direitos reservados