Por favor, sou um iniciante em programação e estou com dúvida da lógica pra utilizar um array list.
Se eu tenho por exemplo duas classes que criar seus respectivos objetos:
Funcionario{
int idade = 0;
double salario = 1000/
salarioLiquido();
}
Patrao{
int idade = 0;
double salario = 1000/
salarioLiquido();
}
e eu crio um laço com while pra cadastrar objetos:
String opcao = “sim”;
while(opcao == “sim”){
func = new Funcionario;
pat = new Patrao;
opcao = jOptionPanel(“deseja continuar? sim/não”);
}
Como que faço pra adicionar esses objetos criados em um ArrayList pra depois imprimir eles com o For?
Eu não to conseguindo entender bem pela apostila, o fato de eu só conseguir teste de noite me atrapalha também, mas é a condição que tenho pra estudar no momento, por exemplo, seria essa a lógica?
ArrayList armazenar = new ArrayList();
String opcao = “sim”;
while(opcao == “sim”){
func = new Funcionario;
armazenar.add(Funcionario);
pat = new Patrao;
armazenar.add(Patrao);
opcao = jOptionPanel(“deseja continuar? sim/não”);
}
For(i = 0, i < armazenar.size, i++){
System.out.println(armazena(i));
}
Basicamente, seria isso sim. Mas atente-se ao seguinte:
- seu ArrayList precisa de um tipo. Quando declarar, faça algo como List< Funcionario > armazenar = new ArrayList<>();
- só que, quando você fizer isso, não poderá armazenar objetos do tipo Patrao;
- o ideal, caso queira usar o mesmo ArrayList para ambos, é fazer ambas as classes terem uma classe base em comum (como Pessoa);
- ou seja, você cria uma classe Pessoa (com os atributos em comum, como idade e salario), daí as classes Funcionario e Patrao herdam de Pessoa (“class Funcionario extends Pessoa” e “class Patrao extends Pessoa”);
- o método add precisa receber um objeto. Você fez armazenar.add(Funcionario) quando deveria ter feito armazenar.add(func). Mesma coisa pro Patrao: faça armazenar.add(pat);
- seu você precisa sobrescrever o método toString das classes Patrao e Funcionario (ou mesmo da classe Pessoa) para que o System.out.println(armazena(i)); imprima os dados ao invés do endereço de memória do objeto.
Leia os links que eu postei.
Abraço.
1 curtida
Ja me ajudou muito, daqui vou tentar praticar um pouco e de noite digo se consegui na prática.