(AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07...

21
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

Transcript of (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07...

Page 1: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

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

Page 2: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

»

»

»

»

Edmilson Campos ([email protected]) 2

Page 3: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

»− ser formado

»− conter

»− usar

Edmilson Campos ([email protected]) 3

Page 4: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

▪»

▪»

Edmilson Campos ([email protected]) 4

Page 5: (AULA 07) Relações entre Objetos€¦ · 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; }

Page 6: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

▪»

▪»

Edmilson Campos ([email protected]) 6

Page 7: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

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

Page 8: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

»

public class Trem { /* ... */ public void definirEstrada(EstradaFerro estradaFerro){ this.estradaFerro = estradaFerro; } }

public class EstradaDeFerro { /* ... */ }

Edmilson Campos ([email protected]) 8

Page 9: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

»

»−

»

»

Edmilson Campos ([email protected]) 9

Page 10: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

▪»

Edmilson Campos ([email protected]) 10

Page 11: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

▪»

»

»

public class Carro { private Motor motor; }

Edmilson Campos ([email protected]) 11

Page 12: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

▪»

−−

−−

»−

Edmilson Campos ([email protected]) 12

Page 13: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

Edmilson Campos ([email protected]) 13

Page 14: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

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

Page 15: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

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

Page 16: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

/* 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

Page 17: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

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

Page 18: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

/* 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

Page 19: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

/* 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

Page 20: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

package ifrn.agenda.interface;

public class AplicacaoAgenda {

public static void main(String[] args) {

UI tela = new UI();

tela.run();

}

}

Edmilson Campos ([email protected]) 20

Page 21: (AULA 07) Relações entre Objetos€¦ · Agregação, Composição e Associação AULA 07 Programação Orientada à Objetos ...

Edmilson Campos ([email protected]) 21