(AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07...
Transcript of (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07...
Disciplina:
MsC. Alexandro Vladno
Edmilson Campos
MsC. Fábio Procópio
Esp. Felipe Dantas
MsC. João Maria
MsC. Liviane Melo
Corpo docente:
Agregação, Composição e Associação
AULA 07
Programação Orientada à Objetos
▪
»
▪
»
/* Definição da classe Livro */ public class Livro { private Capitulo[] capitulos; public Livro(int qtdCapitulo){ capitulos = new Capitulo[qtdCapitulo]; } }
Edmilson Campos ([email protected]) 5
/* Definição da classe Capitulo */ public class Capitulo { private Livro livro; }
▪
public class Carro { private Motor motor; private Porta portas[]; private Pneu pneus[]; /* ... */ }
public class Carro { private Motor motor; private Porta portas[]; private Pneu p1, p2, p3, p4; /* ... */ }
public class Motor{ /* ... */ }
public class Pneu{ /* ... */ }
public class Porta{ /* ... */ }
Edmilson Campos ([email protected]) 7
▪
»
public class Trem { /* ... */ public void definirEstrada(EstradaFerro estradaFerro){ this.estradaFerro = estradaFerro; } }
public class EstradaDeFerro { /* ... */ }
Edmilson Campos ([email protected]) 8
Edmilson Campos ([email protected]) 13
package ifrn.agenda.dominio
public class Contato {
private String nome;
private String telefone;
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getTelefone() {
return telefone;
}
}
Edmilson Campos ([email protected]) 14
package ifrn.agenda.dominio;
public class Agenda {
private Contato contatos[];
private int quantidade;
public Agenda(){
contatos = new Contato[10];
quantidade = 0;
}
public void inserir(Contato contato){
contatos[quantidade++] = contato;
}
/* Continua... */
Edmilson Campos ([email protected]) 15
/* Continuação */
public Contato buscar(String nome){
for (int i = 0 ; i < quantidade ; i++)
if (contatos[i].getNome().equals(nome))
return contatos[i];
/* Se sair do laço é porque não encontrou nenhum contato
com o nome passado */
return null;
}
public void remover(String nome){
// Exercício
}
public int getQuantidade(){
return quantidade;
}
}
Edmilson Campos ([email protected]) 16
package ifrn.agenda.interface;
import java.util.Scanner;
public class UI {
private Agenda agenda;
private Scanner sc;
public void run() {
sc = new Scanner(System.in);
int opcao = 0;
do {
printMenu();
opcao = Integer.parseInt(sc.nextLine());
switch (opcao) {
case 1:
inserirContato(); break;
case 2:
buscarContato(); break;
}
} while (opcao != 0);
} /* Continua... */
Edmilson Campos ([email protected]) 17
/* Continuação */
private void inserirContato() {
System.out.print("Digite o nome: ");
String nome = sc.nextLine();
System.out.println("Digite o telefone");
String telefone = sc.nextLine();
Contato novo = new Contato();
novo.setNome(nome);
novo.setTelefone(telefone);
agenda.inserir(novo);
}
private void buscarContato() {
System.out.print("Digite o nome: ");
String nome = sc.nextLine();
Contato contato = agenda.buscar(nome);
if (contato != null)
System.out.println(contato);
else
System.out.println("Contato não encontrado!!!!");
} /* Continua... */
Edmilson Campos ([email protected]) 18
/* Continuação */
private void removerContato() {
System.out.println("A ser implementado");
}
private void printMenu() {
System.out.println("\n\n ---- Menu Agenda de contatos V 1.0 ----");
System.out.println("\n Memória: " + agenda.quantidade() + " contatos");
System.out.println(" 0 - Sair");
System.out.println(" 1 - Inserir Contato");
System.out.println(" 2 - Buscar Contato");
System.out.println(" 3 - Remover Contato");
System.out.print("\n Digite uma opçãoo: ");
}
public UI() {
agenda = new Agenda();
}
}
Edmilson Campos ([email protected]) 19
package ifrn.agenda.interface;
public class AplicacaoAgenda {
public static void main(String[] args) {
UI tela = new UI();
tela.run();
}
}
Edmilson Campos ([email protected]) 20