agregacaoagregacao

Relacionamentos entre objetos

Em Programação Orientada a Objetos, uma classe pode utilizar outra classe.

Existem diferentes tipos de relacionamento.

Os dois mais importantes são:

  • Agregação
  • Composição

Embora pareçam semelhantes, eles possuem diferenças importantes.

Agregação

Na agregação, um objeto utiliza outro, mas ambos podem existir independentemente.

Se um objeto for destruído, o outro continua existindo.

É conhecida como relação “tem um” (has-a).

Exemplo

Uma universidade possui professores.

Se a universidade fechar, os professores continuam existindo.

Diagrama:

Universidade
      |
      |------ Professor

Implementação

Classe Professor

public class Professor {

    private String nome;

    public Professor(String nome){
        this.nome = nome;
    }

    public String getNome(){
        return nome;
    }

}

Classe Universidade

public class Universidade {

    private Professor professor;

    public Universidade(Professor professor){
        this.professor = professor;
    }

    public void mostrarProfessor(){
        System.out.println(professor.getNome());
    }

}

Uso:

Professor p = new Professor("Carlos");

Universidade u = new Universidade(p);

O professor continua existindo mesmo que a universidade deixe de existir.

Composição

Na composição, um objeto depende totalmente do outro.

Quando o objeto principal deixa de existir, seus componentes também deixam de existir.

É uma relação muito mais forte.

Exemplo

Uma casa possui quartos.

Não existe um quarto pertencente àquela casa sem que a própria casa exista.

Diagrama

Casa
  |
  |------ Quarto

Implementação

Classe Quarto

public class Quarto {

    private String nome;

    public Quarto(String nome){
        this.nome = nome;
    }

    public String getNome(){
        return nome;
    }

}

Classe Casa

public class Casa {

    private Quarto quarto;

    public Casa(){
        quarto = new Quarto("Suíte");
    }

    public void mostrar(){
        System.out.println(quarto.getNome());
    }

}

Observe que o quarto é criado dentro da casa.

O usuário não cria um objeto Quarto separadamente.

Diferenças entre Agregação e Composição

CaracterísticaAgregaçãoComposição
RelaçãoFracaForte
Objetos independentesSimNão
CompartilhamentoSimNão
Ciclo de vidaIndependenteDependente
ExemploUniversidade e ProfessorCasa e Quarto

Exemplos do cotidiano

Agregação

  • Empresa → Funcionário
  • Time → Jogador
  • Escola → Professor
  • Biblioteca → Livro

Todos podem existir separadamente.

Composição

  • Casa → Quarto
  • Carro → Motor
  • Computador → Placa-mãe
  • Livro → Capítulos

As partes dependem do objeto principal.

By Infodiversao

Adoro tecnologia e informação. Gosto de jogos eletrônicos e de esportes. Desejo que todos tenham uma ótima vida!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *