Click here to Skip to main content
15,889,096 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Estou tentando fazer com que um loop crie objetos diferentes da mesma classe, porém a cada volta do loop ele cria o objeto com o mesmo nome, ou seja, sobrescreve o que já tinha sido criado na volta anterior do loop. Como faço para criar um objeto da mesma classe que seja com um nome diferente a cada loop?

English translation:
I'm trying to make a loop create different objects of the same class, but at each turn of the loop it creates the object with the same name, that is, it overwrites what had already been created in the previous loop of the loop. How do I create an object of the same class that has a different name each loop?

What I have tried:

Java
// Vou criar uma classe aleatória chamada Escola com 2 atributos
public class Escola {
    String nome; // Nome da escola;
    int qtdProfessor; // Quantidade de professores da escola;
    // Construtor da classe Escola
    public Escola(String nome, int qtdProfessor) {
    this.nome = nome;
    this.qtdProfessor = qtdProfessor;
    }
}

//Pronto, agora vou criar uma classe de teste chamada TesteEscola
public class TesteEscola {
    public static void main(String[] args) {
        while (true) { // Loop infinito para criar quantas escolas o usuário quiser
            char pergunta = Teclado.leChar("Criar nova escola? [S/N] ");
            if (pergunta == 'S') { // Dentro deste if deve criar uma nova escola
                Escola escola1 = new Escola(Teclado.leString("Informe o nome da escola: "), Teclado.leInt("Informe o número de professores: "));
                // O grande problema é que não consigo criar objeto com o nome "Escola2", Escola3, e assim sucessivamente após..
                // ..um loop diferente onde a pessoa decidir criar uma nova escola. sempre vai criar o mesmo objeto escola1;
            }
            else if (pergunta == 'N') // Aqui encerra o while
                break;
            else
                System.out.println("Resposta inválida");
        }
    }
}
Posted
Updated 12-Oct-22 17:00pm
v3

1 solution

You need to keep handle of the objects with you (You can access all of them by references). One of the ways to do it:
Java
ArrayList<Escola> escolaArray = new ArrayList<Escola>();
while(tillTrue) {
    //get nome
    //get qtdProfessor
    escolaArray.add(new Escola(loopNome, loopQtdProfessor);
}

You would need to adjust your code accordingly. You can access all the objects created in escolaArray. Also, make sure to keep escolaArray in the right scope based on how/where you want to make use of it (inside while loop or outside).
 
Share this answer
 
Comments
CPallini 13-Oct-22 2:19am    
5.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900