Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Poderia explicar melhor quando utilizar uma composição de objetos

Boa noite!

Senti um ponto de interrogação quanto a explicação de composição de objetos, poderia exemplificar melhor, quando utilizar uma composição?

2 respostas

Oi Walquiria, tudo bem?

A composição é obtida usando variáveis ​​de instância que se referem a outros objetos. Por exemplo, uma Pessoa possui um Emprego:

public class Emprego{
    private String cargo;
    private long salario;
}
public class Pessoa{
    // composição: uma pessoa tem um emprego
    private Emprego emprego;
}

A composição pode ser usada quando você tiver procurando por reutilização de código e o relacionamento entre essas duas classes for "tem um", no nosso exemplo: uma Pessoa tem um Emprego.

solução!

Olá Walquiria,

como no exemplo, o Paulo decide criar uma nova classe quando ele percebe que a classe Conta começa a ficar muito grande. Além disso, ele percebe que alguns atributos na verdade não seria de responsabilidade da Conta e sim de outra classe, nesse caso Cliente.

Assim, ele cria outra classe, Cliente. A partir daí, a classe Conta será composta por outra classe, a classe Cliente.

Isso é a composição, utilizar classes para compor outras, ou quando uma classe tem referências a objetos de outras classes como membros.

Pense no exemplo de uma classe Veículo. Você poderia ter vários tipos de veículos; moto, carro, etc. Todos tem um motor.

Desta forma poderia fazer uma classe Motor que iria compor sua classe Veículo, pois em cada veículo o motor teria uma configuração distinta.

Não sei se vc já estudou um pouco de banco de dados, relacionamentos... Mas pode-se dizer que quando existe um relacionamento tem-um vc tem uma composição. Como no exemplo, Veiculo tem-um Motor.

Mais ou menos isso:

class Motor {    
    double potencia;

    public Motor (double potencia){
        this.potencia = potencia;
    }
}

class Carro{    

    Motor motor; // composição, carro tem-um motor.

    public void setMotor(Motor motor){
        // implementação
    }
}
Caso este post tenha te ajudado, por favor, marcar como solucionado ✔. Bons estudos! ⌣

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software