Relacionamento N-ário - Atributos implicítos

0 respostas
vieiraantunes

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());
}

}

Criado 8 de outubro de 2008
Respostas 0
Participantes 1