Você está na página 1de 12

“Mas o que, para servir nossos

propósitos particulares, proíbe


trapacear nossos amigos?”!
— Charles Churchill”.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: itel.geral@gmail.com | www.itel.gov.ao
Curso de Informática
Curso de Informática e Sistemas Multimédia
TLP & SI 11ª Classe

- RELACIONAMENTO ENTRE CLASSES

Lição nº 1, 2 e 3
Data: 15 - 19 de Abril de 2024

Eng. ENELVIN SILVA


Email: enelvinsilva@gmail.com
SUMÁRIO

▪ Relacionamento entre classes

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: itel.geral@gmail.com | www.itel.gov.ao
Relacionamento entre classes
o No Java, o relacionamento entre classes descreve como as classes se interagem e
se conectam umas com as outras. Existem vários tipos de relacionamentos entre
classes em Java, incluindo:

1. Associação

2. Agregação

3. Composição

4. Herança

5. Implementação

Neste material, o nosso foco será apenas o relacionamento de agregação.


Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: itel.geral@gmail.com | www.itel.gov.ao
Relacionamento de Agregação
o Agregação é um tipo específico de associação onde uma classe é composta de
outras classes.

o É uma relação "todo-parte", onde a parte pode existir independentemente do


todo.

o Por exemplo, uma classe “Turma" pode ser composta por várias classes “Aluno",
mas os alunos podem existir independentemente da turma.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: itel.geral@gmail.com | www.itel.gov.ao
Relacionamento de Agregação
o Vamos considerar as classes Turma e Aluno. Uma turma é composta por vários
aluno, mas os alunos podem existir independentemente da turma. Aqui está um
exemplo:

public class Turma {


private String codigo;
private Aluno aluno;

// Outros métodos e atributos da classe Turma


}

public class Aluno {


private String nome;
private int numProcesso;
}
Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: itel.geral@gmail.com | www.itel.gov.ao
Relacionamento de Agregação
o Neste exemplo, a classe Turma representa uma turma de alunos e possui objeto
do tipo Aluno. A classe Aluno representa um aluno individual com um nome e um
número de processo.

o A seguir um exemplo de Relacionamento entre classes:


o Criaremos a classe Equipa e a Classe CampeonatoUefa. As duas classes estarão
relacionadas, uma vez que numa competição da Uefa participam equipas.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: itel.geral@gmail.com | www.itel.gov.ao
Relacionamento de Agregação
// Criação da classe Equipa com seus métodos especiais e métodos específicos da classe.

public class Equipa {


private String nome;
private String liga;
private int classificacao;
private String competicaoUefa;
private int vitorias;
private int derrotas;
private int empates;

public Equipa(String nome, String liga, int classificacao, int vitorias, int derrotas, int empates) {
this.nome = nome;
this.liga = liga;
this.setClassificacao(classificacao);
this.vitorias = vitorias;
this.derrotas = derrotas;
this.empates = empates;
}

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: itel.geral@gmail.com | www.itel.gov.ao
Relacionamento de Agregação
public String getNome() { public String getCompeticaoUefa() {
return nome; return competicaoUefa;
} }
public void setNome(String nome) { private void setCompeticaoUefa() {
this.nome = nome; if(this.classificacao <= 4){
} this.competicaoUefa = "UEFA
public String getLiga() { CHAMPIONS LEAGUE";
return liga; }
} else if(this.classificacao == 5){
public void setLiga(String liga) { this.competicaoUefa = "UEFA EUROPA
this.liga = liga; LEAGUE";
} }
public int getClassificacao() { else if (this.classificacao == 6){
return classificacao; this.competicaoUefa = "UEFA EUROPA
} CONFERENCE LEAGUE";
public void setClassificacao(int c) { }
this.classificacao = c; else {
this.setCompeticaoUefa(); this.competicaoUefa = "Não
} classificada";
}
}
Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: itel.geral@gmail.com | www.itel.gov.ao
Relacionamento de Agregação
public int getVitorias() { //Outros Métodos
return vitorias;
} public void info(){
public void setVitorias(int vitorias) { System.out.println("-------------------------------------");
this.vitorias = vitorias; System.out.println("Nome da Equipa: " +
} this.getNome());
public int getDerrotas() { System.out.println("Liga: " + this.getLiga());
return derrotas; System.out.println("Classificação na sua Liga: " +
} this.getClassificacao()+"º");
public void setDerrotas(int derrotas) { System.out.println("Competição da UEFA: " +
this.derrotas = derrotas; this.getCompeticaoUefa());
} System.out.println("Vitórias: " + this.getVitorias());
public int getEmpates() { System.out.println("Derrotas: " + this.getDerrotas());
return empates; System.out.println("Empates: " + this.getEmpates());
}
public void setEmpates(int empates) { }
this.empates = empates;
}

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: itel.geral@gmail.com | www.itel.gov.ao
Relacionamento de Agregação
public void ganharPartida(){
this.setVitorias(this.getVitorias()+1);

public void perderPartida(){


this.setDerrotas(this.getDerrotas()+1);

public void empatarPartida(){


this.setEmpates(this.getEmpates()+1);

}
}

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: itel.geral@gmail.com | www.itel.gov.ao
TAREFA
Criar a classe CampeonatoUefa com os respectivos atributos e métodos. O objectivo
da classe será permitir que duas equipas disputem uma partida entre si.
• criar o método marcarPartida, com as respectivas condições para que uma partida
seja aprovada.
• Criar o método efectuarPartida, que deve ser executada, apenas se a partida tiver
sido marcada e aprovada.

• Use a sua imaginação para modelar a classe CampeonatoUefa.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: itel.geral@gmail.com | www.itel.gov.ao

Você também pode gostar