Neste capítulo, vamos entender como as classes podem se relacionar entre si, construindo sistemas mais complexos e realistas. Você aprenderá sobre composição, associação e uma introdução à agregação.
Em Java, os objetos não vivem isolados. Na maioria das aplicações, objetos interagem entre si, formando estruturas maiores. Assim como na vida real, onde uma Pessoa pode ter um Endereço, ou uma Empresa pode ter vários Funcionários, em Java representamos essas relações por meio de atributos que são de outros tipos de classes.
É o relacionamento mais simples entre duas classes. Uma classe “conhece” outra, mas ambas podem existir de forma independente.
Exemplo: Um Professor pode dar aula em uma Disciplina.
public class Disciplina {
String nome;
}
public class Professor {
String nome;
Disciplina disciplina; // associação
}
É uma forma mais forte de relacionamento. Uma classe contém outra como parte essencial. Se a classe principal deixar de existir, as partes também deixam.
Exemplo: Um Carro possui um Motor. Se o carro for destruído, o motor não tem mais utilidade.
public class Motor {
int potencia;
}
public class Carro {
String modelo;
Motor motor = new Motor(); // composição
}
O motor é criado junto com o carro.