Observe o diagrama de classes a seguir. Existe um relacionamento com multiplicidade 1 para *. Construa em Java, as classes Cliente e Animal, criando os atributos de relacionamento para ambas as classes. Na classe com relacionamento n-ário, criar o atributo de relacionamento como uma coleção de qualquer realização da interface List. Devem ser criados todos os métodos necessários para adicionar e remover elementos da coleção. Criar uma classe chamada programa para fazer a entrada de dados na coleção e listar os objetos armazenados a partir de um iterator ou for each.
este e o codigo que eu fiz ,mais quando executa o cadastro de animal de cliente, ele está permitindo digitar apenas uma vez o nome animal, depois quando vou cadastrar o próximo ele pula direto para ano. Não sei o que está acontecendo Aquem porte me ajudar com esse problema no código?
Código da Classe Animal
package dominino;
public class Animal {
private String nome,anoNascimento, sexo, especie, raca;
private Cliente cli;
public Animal(String nome, String anoNascimento, String sexo, String especie, String raca) {
this.nome = nome;
this.anoNascimento = anoNascimento;
this.sexo = sexo;
this.especie = especie;
this.raca = raca;
}
public String getNomeA() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getAnoNascimento() {
return anoNascimento;
}
public void setAnoNascimento(String anoNascimento) {
this.anoNascimento = anoNascimento;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public String getEspecie() {
return especie;
}
public void setEspecie(String expecie) {
this.especie = expecie;
}
public String getRaca() {
return raca;
}
public void setRaca(String raca) {
this.raca = raca;
}
public void setCli(Cliente cli) {
this.cli = cli;
}
}
Código da Classe Cliente
package dominino;
import java.util.ArrayList;
import java.util.Vector;
public class Cliente {
private String cpf, nome, endereco, telefone;
private ArrayList<Animal> listaAnimal;
public Cliente(String cpf, String nome, String endereco, String telefone) {
this.cpf = cpf;
this.nome = nome;
this.endereco = endereco;
this.telefone = telefone;
listaAnimal = new ArrayList<Animal>();
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
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 void addAnimal(Animal novoAnimal) {
if (listaAnimal.contains(novoAnimal))
return;
else {
listaAnimal.add(novoAnimal);
novoAnimal.setCli(this);
}
}
public void removeAnimal (Animal exAnimal) {
if (!listaAnimal.contains(exAnimal))
return;
else {
listaAnimal.remove(exAnimal);
exAnimal.setCli(null);
}
}
public ArrayList getListaAnimal() {
return listaAnimal;
}
}
Código da Classe Programa
package controle;
import java.util.ArrayList;
import java.util.Scanner;
import dominino.Animal;
import dominino.Cliente;
public class Programa {
public static void main(String[] args) {
Scanner leia = new Scanner(System.in);
String nomeA,anoNascimento, sexo, especie, raca ;
char resp = 'S';
System.out.println("Digite o CPF do Cliente: ");
String cpf = leia.nextLine();
System.out.println("Digite o Nome do Cliente: ");
String nome = leia.nextLine();
System.out.println("Digite o endereço do Cliente: ");
String endereco = leia.nextLine();
System.out.println("Digite o telefone do Cliente: ");
String telefone = leia.nextLine();
Cliente cli = new Cliente (cpf, nome, endereco, telefone);
System.out.println("\nCADASTRO DOS ANIMAIS DO CLIENTE");
do {
System.out.println("Digite o Nome do Animal: ");
nomeA = leia.nextLine();
System.out.println("Digite o ano do nascimento do Animal: ");
anoNascimento = leia.nextLine();
System.out.println("Digite o sexo do Animal: ");
sexo = leia.nextLine();
System.out.println("Digite a espécie do Animal: ");
especie = leia.nextLine();
System.out.println("Digite a raça do Animal: ");
raca = leia.nextLine();
Animal animal = new Animal (nomeA, anoNascimento, sexo, especie, raca);
cli.addAnimal(animal);
System.out.println("Deseja adicionar outro animal? <S/N>:");
resp = leia.next().charAt(0);
} while ((resp == 'S') || (resp == 's'));
System.out.println("\n\nRELATÓRIO DE ANIMAIS DO (A) CLIENTE" + cli.getNome());
ArrayList<Animal> lista = cli.getListaAnimal();
for (Animal animalTemp : lista)
System.out.println(animalTemp.getNomeA() + " - " + animalTemp.getAnoNascimento() + " - " + animalTemp.getSexo()+ " - " + animalTemp.getEspecie()+ " - " + animalTemp.getRaca());
}
}