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?
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?
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.
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
}
}