Classe Cliente
import java.util.ArrayList;
import java.util.Arrays;
public class Cliente
{
private int codigoCliente;
private String nome;
private String endereco;
private String telefone;
private String cep;
private String email;
private ArrayList<Animal> animais = new ArrayList();
public ArrayList<Animal> getAnimais() {
return animais;
}
public void setAnimais(ArrayList<Animal> animais) {
this.animais = animais;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getCodigoCliente() {
return codigoCliente;
}
public void setCodigoCliente(int codigoCliente) {
this.codigoCliente = codigoCliente;
}
public Cliente(int codigoCliente, String nome, String endereco, String telefone, String cep, String email,
ArrayList<Animal> animais) {
super();
this.codigoCliente = codigoCliente;
this.nome = nome;
this.endereco = endereco;
this.telefone = telefone;
this.cep = cep;
this.email = email;
this.animais = animais;
}
@Override
public String toString() {
return "Cliente [codigoCliente=" + codigoCliente + ", nome=" + nome + ", endereco=" + endereco + ", telefone="
+ telefone + ", cep=" + cep + ", email=" + email + ", animais=" + animais.toString() + "]";
}
Classe Animal
import java.util.ArrayList;
import java.util.Arrays;
public class Animal
{
private String nomeAnimal;
private int idadeAnimal;
private String sexoAnimal;
private Especie especieAnimal;
private ArrayList<Tratamento> tratamentos;
public Especie getEspecieAnimal() {
return especieAnimal;
}
public void setEspecieAnimal(Especie especieAnimal) {
this.especieAnimal = especieAnimal;
}
public ArrayList<Tratamento> getTratamentos() {
return tratamentos;
}
public void setTratamentos(ArrayList<Tratamento> tratamentos) {
this.tratamentos = tratamentos;
}
public String getNomeAnimal() {
return nomeAnimal;
}
public void setNomeAnimal(String nomeAnimal) {
this.nomeAnimal = nomeAnimal;
}
public int getIdadeAnimal() {
return idadeAnimal;
}
public void setIdadeAnimal(int idadeAnimal) {
this.idadeAnimal = idadeAnimal;
}
public String getSexoAnimal() {
return sexoAnimal;
}
public void setSexoAnimal(String sexoAnimal) {
this.sexoAnimal = sexoAnimal;
}
public Animal(String nomeAnimal, int idadeAnimal, String sexoAnimal, Especie especieAnimal,
ArrayList<Tratamento> tratamentos) {
super();
this.nomeAnimal = nomeAnimal;
this.idadeAnimal = idadeAnimal;
this.sexoAnimal = sexoAnimal;
this.especieAnimal = especieAnimal;
this.tratamentos = tratamentos;
}
@Override
public String toString() {
return "Animal [nomeAnimal=" + nomeAnimal + ", idadeAnimal=" + idadeAnimal + ", sexoAnimal=" + sexoAnimal
+ ", especieAnimal=" + especieAnimal + ", tratamentos=" + tratamentos + "]";
}
}
Entao tenho essas duas classes em um relacionamento 1:N,ou seja um Cliente pode ter muitos animais e os animais pertencem a um cliente especifico.
.
ClasseChamada
import java.util.ArrayList;
import java.util.Scanner;
public class ClasseChamada {
public static void main(String[] args)
{
/*Menu
* 1- cadastrar Cliente
* 2 - Listar Clientes Cadastrados
* 3 - Listar Animais por cliente
* 4- informaçoes do cliente
* 5- Realizar tratamento
* 6- listar tramentos por animal
* 7- Marcar Consulta
* 8- listar historico do animal
*/
//Cliente
int codigo=0;
String nome;
String end;
String tel;
String cep;
String email;
//Animal
String nomeAnimal;
int idade;
String sexo;
//Tratamento
String datainicio;
String datafinal;
//Consulta
String dataConsulta;
String historico;
//Listas
ArrayList <Cliente> clientes = new ArrayList();
ArrayList <Animal> animais = new ArrayList();
//Variavies
int op=0;
int indice=0;
Scanner entrada = new Scanner(System.in);
while(true)
{
System.out.println("------------------------------------------------------");
System.out.println("1 -Cadastrar Cliente");
System.out.println("2 - cadastrar Animal");
System.out.println("3- Lista de clientes ");
System.out.println("4 - Marcar Consulta ");
System.out.println("5 - Opçao: ");
op = entrada.nextInt();
switch(op)
{
case 1:
{
System.out.println("Codigo Cliente:");
codigo = entrada.nextInt();
System.out.println("Nome:");
nome = entrada.next();
System.out.println("Telefone:");
tel = entrada.next();
System.out.println("Email:");
email = entrada.next();
System.out.println("CEP:");
cep = entrada.next();
System.out.println("Endereço:");
end = entrada.next();
clientes.add(new Cliente(codigo, nome, email, tel, cep, end, animais));
break;
}
case 2:
{
System.out.println("Digite o codigo do Cliente:");
codigo = entrada.nextInt();
if(codigo==Clientes(clientes))
{
System.out.println("---------Cadastrar Animais-------");
System.out.println("Nome do Animal:");
nomeAnimal = entrada.next();
System.out.println("Idade do Animal:");
idade = entrada.nextInt();
System.out.println("Sexo do Animal:");
sexo = entrada.next();
animais.add(new Animal(nomeAnimal, idade, sexo, null, null));
//Problema como adicionar um arraylist em uma posicao especificada de outro ArrayList?;
}
}
case 3://Lista Clientes
{
System.out.println("Lista de clientes");
for(Cliente x:clientes )
{
System.out.println(x.getNome()+"\n"+x.getAnimais());
}
}
}
}
}
static int Clientes(ArrayList<Cliente> clientes) //Procura o codigo do cliente dentro do ArrayList
{
for(Cliente x:clientes)
{
return x.getCodigoCliente();
}
return 0;
}
}
Tenho essa classe aqui que instancia vários clientes e animais. Crie um ArrayList para instanciar vários clientes para cada cliente eu tenho ArrayList
com uma ou varias instancias de animais,
Depois de cadastrar os clientes
na hora de listar (pedi para listar somente o nome e os animais do cliente)
A saida sem Cadastrar os animais é essa:
Maria
[ ]
Joao
[ ]
até ai tudo certo e esta cadastrando os clientes, mas quando cadastro os animais para dois clientes especificos
a saida é
Maria
[ Animal [nomeAnimal=Brutos, idadeAnimal=2, sexoAnimal=M, especieAnimal=null, tratamentos=null] ]
Joao
[ Animal [nomeAnimal=Brutos, idadeAnimal=2, sexoAnimal=M, especieAnimal=null, tratamentos=null] ]
ele retorna a mesma instancia de Animal
O programa instancia a classe animal e coloca no ArrayList
,mas parece que só instancia uma vez a classe, então o problema é como instanciar o