Esse semestre estou tendo aulas de jdbc, na verdade ainda não entramos nessa fase. Estamos estudando coleções para manipulaçao de dados.
Minha dúvida é a seguinte:
Eu tenho uma aplicação mas robusta…mas prefiro pegar um exemplo simples para nao complicar demais. Relacionamentos entre as classes, ate aí eu entendi, o problema e fazer referencia ao objeto da outra classe, ou seja , eu tenho duas classes Cachorro e Vacina. Eu faço o cadastro das duas classes, uma classe faz referencia a outra. Minha duvida, como seria a saida desses dados? Já que na classe dominio existe a referencia do objeto.
OBS:Não estou trabalhando com banco de dados, estou somente no console do eclipse e armazeno num TreeSet ea classe a Clase main so Cadastra uma classe nao se preocupem com isso só estou querendo saber é a referencia de saida do outro objeto, o cadastro de ambos esta em outra aplicção
CLASSES DOMONIO
package exemplos;
public class Vacina implements Comparable {
private int codigo;
private String descricao;
public int compareTo(Object arg0) {
if (arg0 instanceof Vacina) {
Vacina v = (Vacina) arg0;
return this.descricao.compareTo(v.getDescricao());
}
return -1;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
package exemplos;
import java.util.TreeSet;
//Criando a classe de domínio de acordo com o padrão
//Java Beans. Esta classe também vai implementar a interface
//“Comparable” para permitir ordenação e unicidade dos
//elementos em uma coleção do tipo “TreeSet”:
public class Cachorro implements Comparable {
//
// Crio os atributos da classe:
private int codigo;
private String raca;
private String observacao;
private TreeSet<Vacina> vacinas;//relacionamento com a classe Vacina
//
// Crio os construtores:
public Cachorro() {
}
public Cachorro(int codigo, String raca, String observacao) {
this.codigo = codigo;
this.raca = raca;
this.observacao = observacao;
}
//
// Crio o método "compareTo", que vem da interface "Comparable",
// e que garante o funcionamento dos recursos de ordenação de
// elementos e unicidade dos elementos em uma coleção do tipo
// "TreeSet".
public int compareTo(Object arg0) {
if (arg0 instanceof Cachorro) {
Cachorro c = (Cachorro) arg0;
return this.codigo - c.getCodigo();
}
return -1;
}
//
// Métodos para facilitar a utilização da coleção:
public void addVacina(Vacina vacina) {
this.vacinas.add(vacina);
}
public void removeVacina(Vacina vacina) {
this.vacinas.remove(vacina);
}
//
// Crio os métodos "get" e "set" para TODOS os atributos
// da classe:
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getObservacao() {
return observacao;
}
public void setObservacao(String observacao) {
this.observacao = observacao;
}
public String getRaca() {
return raca;
}
public void setRaca(String raca) {
this.raca = raca;
}
public TreeSet<Vacina> getVacinas() {
return vacinas;
}
public void setVacinas(TreeSet<Vacina> vacinas) {
this.vacinas = vacinas;
}
}
CLASSE DE CONTROLE
package exemplos;
import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;
public class CadastroDeCachorros {
// Crio uma coleção para guardar os objetos cadastrados pelo
// usuário na memória. Vai funcionar como se fosse um banco de
// dados para nosso pequeno exemplo:
static TreeSet<Cachorro> bancoDados = new TreeSet<Cachorro>();
static Scanner sc = new Scanner(System.in);
public static String linha = "\n\n-----------------------------------------";
public static void main(String args[]) {
while (true) {
System.out.println(linha);
System.out.println("Cadastro de Cachorros - Menu Principal");
System.out.println("1 - Cadastrar");
System.out.println("2 - Alterar");
System.out.println("3 - Consultar");
System.out.println("4 - Excluir");
System.out.println("5 - Sair");
System.out.println("Escolha sua opção:");
String opcao = sc.next();
int op = Integer.parseInt(opcao);
if (op == 1)
cadastrar();
else if (op == 2)
alterar();
else if (op == 3)
consultar("CONSULTA");
else if (op == 4)
excluir();
else if (op == 5)
break;
else
System.out.println("Opção inválida");
}
listar();
}
public static void cadastrar() {
// Envio mensagens ao usuário:
System.out.println(linha);
System.out.println("Cadastro de Cachorros - Tela de CADASTRO");
// Crio o novo objeto para guardar os dados:
Cachorro c = new Cachorro();
// leio dados...
lerDadosCachorro(c);
// Guardo na coleção
bancoDados.add(c);
}
public static void lerDadosCachorro(Cachorro c) {
// Leio os dados do novo cadastro:
System.out.println("Informe o código: ");
c.setCodigo(sc.nextInt());
System.out.println("Informe a raça: ");
c.setRaca(sc.next());
}
public static void alterar() {
// Procuro o cachorro na coleção:
Cachorro c = consultar("ALTERAÇÃO");
// leio dados...
if (c == null)
System.out.println("Cachorro não encontrado!");
else
lerDadosCachorro(c);
}
public static Cachorro consultar(String temaTela) {
// Envio mensagens ao usuário:
System.out.println(linha);
System.out.println("Cadastro de Cachorros - Tela de " + temaTela);
// Leio a chave para busca:
System.out.println("Informe o código: ");
int codigo = sc.nextInt();
// Procuro o cachorro na coleção:
Cachorro c = buscar(codigo);
if (c == null)
System.out.println("Cachorro não encontrado!");
else
mostrarDadosObjeto(c);
return c;
}
public static Cachorro buscar(int codigo) {
Cachorro c = null;
for (Iterator it = bancoDados.iterator(); it.hasNext();) {
c = (Cachorro) it.next();
if (codigo == c.getCodigo())
break;
}
return c;
}
public static void excluir() {
// Procuro o cachorro na coleção:
Cachorro c = consultar("EXCLUSÃO");
// Removo o objeto da coleção:
if (c == null)
System.out.println("Cachorro não encontrado!");
else
bancoDados.remove(c);
}
public static void listar() {
// Envio mensagens ao usuário:
System.out.println(linha);
System.out.println("Cadastro de Cachorros - Tela de LISTAGEM");
// Percorrendo a coleção...
Cachorro c = null;
for (Iterator it = bancoDados.iterator(); it.hasNext();) {
c = (Cachorro) it.next();
// Imprimindo os dados:
mostrarDadosObjeto(c);
}
}
public static void mostrarDadosObjeto(Cachorro c) {
System.out.println("");
System.out.println("Código: " + c.getCodigo());
System.out.println("Raça: " + c.getRaca());
}
}