Pessoal, sou iniciante no java e é meu primeiro post. Se estiver postando algo de forma errada, por favor me deêm um toque, ok?
Tenho que implementar um programa onde existem 2 classes: Animal e Individuo. Essas classes possuem um relacionamento de associação, na qual um indivíduo pode ter um ou mais animais. É necessário que a classe Indivíduo possua um atributo Animal. Já me foi dito que preciso colocar este atributo Animal como vetor para listar os animais de cada indivíduo. Porém, não sei como fazer isto, como passar os parâmetros e como fazer a amarração dos animais com o indivíduos. O programa abaixo não funciona desta forma. Postei ele para que entendam o meu raciocínio e como corrigi-lo. Aguardo help de vocês.
public class Animal {
private String classe, nomeA, sexoA;
public Animal (){
classe="";
nomeA="";
sexoA="";
}
public void setClasse (String sclasse){
classe=sclasse;
}
public void setNomeA (String snomea){
nomeA=snomea;
}
public void setSexoA (String ssexoa){
sexoA=ssexoa;
}
public String getClasse ( ){
return classe;
}
public String getNomeA ( ){
return nomeA;
}
public String getSexoA ( ) {
return sexoA;
}
}
public class Individuo {
private String nome, sexo;
private int idade, i=0;
// aqui seria colocado o atributo animal como vetor, não sei se seria assim.
private Animal animal[] = new Animal[3];
public Individuo ( ){
nome="";
sexo="";
idade=0;
animal=null;
}
public void setNome (String snome){
nome=snome;
}
public void setSexo (String ssexo){
sexo=ssexo;
}
public void setIdade (int iidade){
idade=iidade;
}
public void setAnimal (Animal aanimal){
// não sei como definir o vetor, nem como adicionar animais nas posições.
animal[i]=aanimal;
i=i+1;
}
public String getNome ( ){
return nome;
}
public String getSexo ( ){
return sexo;
}
public int getIdade ( ) {
return idade;
}
public Animal getAnimal(){
// desta forma, menos ainda, sei como retornar as posições.
return animal[i];
}
}
E finalmente, como rodar um programa para criar e listar os animais amarrados cada indivíduo:
import javax.swing.*;
public class CadAnimalIndividuo {
public static void main(String[] args) {
Individuo ind[] = new Individuo [2];
// imaginei que cada animal adicionado cairia em uma posição do vetor Animal em Indivíduo, mas não deu certo
Animal an = new Animal();
an=new Animal ();
an.setClasse(JOptionPane.showInputDialog("Entre com a classe"));
an.setNomeA(JOptionPane.showInputDialog("Entre com o nome do animal"));
an.setSexoA(JOptionPane.showInputDialog("Entre com o sexo do animal"));
ind[0]=new Individuo( );
ind[0].setNome(JOptionPane.showInputDialog("Entre com o nome do indivíduo"));
ind[0].setSexo(JOptionPane.showInputDialog("Entre com o sexo do indivíduo"));
ind[0].setIdade(Integer.parseInt(JOptionPane.showInputDialog("Entre com a idade do indivíduo")));
ind[0].setAnimal(an);
an=new Animal ();
an.setClasse(JOptionPane.showInputDialog("Entre com a classe"));
an.setNomeA(JOptionPane.showInputDialog("Entre com o nome do animal"));
an.setSexoA(JOptionPane.showInputDialog("Entre com o sexo do animal"));
ind[1]=new Individuo( );
ind[1].setNome(JOptionPane.showInputDialog("Entre com o nome do indivíduo"));
ind[1].setSexo(JOptionPane.showInputDialog("Entre com o sexo do indivíduo"));
ind[1].setIdade(Integer.parseInt(JOptionPane.showInputDialog("Entre com a idade do indivíduo")));
ind[1].setAnimal(an);
an=new Animal ();
an.setClasse(JOptionPane.showInputDialog("Entre com a classe"));
an.setNomeA(JOptionPane.showInputDialog("Entre com o nome do animal"));
an.setSexoA(JOptionPane.showInputDialog("Entre com o sexo do animal"));
ind[0].setAnimal(an);
for (int i=0;i<3;i++){
// como faço para listar no vetor todos os animais atrelados aos indivíduos, já que ele 'puxa' só uma posição?
JOptionPane.showMessageDialog(null, "Nome do indivíduo"+ind[0].getNome()+"\n"+"Nome do animal"+ind[0].getAnimal().getNomeA());
}
}
}
Obrigado pela atenção!!!