Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como é a criação de várias instâncias na prática?

Imaginemos que temos um sistema de cadastro de clientes genérico, nos testes, como aprendi até o momento, seria algo assim:

public class Teste {

    public static void main(String[] args) {

        Cliente c1 = new Cliente();

        Cliente c2 = new Cliente();

    }
}

Neste caso estou testando e instanciando objetos de forma manual. Mas na prática, como seria? Pois quando alguém for usar este "sistema" e por exemplo, realizar a ação de cadastrar um novo cliente, não terá alguém que irá acessar o código e fazer isso manualmente como mostrei acima. Neste caso, deveria existir um método "instanciaClientes();" ou algo assim? Eles seriam salvos numa lista? Teria alguma integração com banco de dados?

2 respostas

Bom, acabei de descobrir que é possível fazer isto:

public class Teste {

    public static void main(String[] args) {

        int t=0;

        Cliente[] cliente = new Cliente[2];

        cliente[0] = new Cliente();
        cliente[1] = new Cliente();

        cliente[t].metodoGenerico();

Desculpem, sei que isto não é boa prática, mas sanou parte da minha dúvida. Agora eu gostaria de saber como seria a melhor maneira e mais correta, na prática, de fazer algo parecido com isto, como se eu fosse "automatizar" o processo de instanciar estes objetos.

solução!

Oie Gustavo, tudo bem contigo?

Se formos pegar aplicações completas fazer isso seria diferente e como você mesmo citou, envolveria banco de dados e outras tecnologias.

Mas de uma forma extremamente simples, é possível simularmos um pouco como as coisas aconteceriam, veja o código abaixo:

    public static void main(String[] args) {

        int rodar = 0;
        Cliente listaClientes [] = new Cliente[10];

        while (rodar < 10) {    // um loop vai acontecer enquanto a variável "rodar" foi menor que 10

            listaClientes[rodar] = new Cliente();    // toda vez que acontecer o loop, um novo cliente será criado e irá ser guardado na posição a variável "rodar" indicar
            rodar++;     // isso aqui é algo como "rodar = rodar + 1;", por isso toda vez que acontecer o loop o valor de "rodar" vai aumentar em 1
        }
    }

Essa maneira que fiz acima está extremamente simples. Ao longo dos seus estudos com a linguagem java você vai perceber que é possível fazer de um jeito mais completo.

Só para você ter noção, fazendo de uma maneira mais complexa ficaria algo do tipo:

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        boolean rodar = true;
        int cont = 0;
        ArrayList<Cliente> clientes = new ArrayList();

        while (rodar == true) {

            System.out.println("Digite o número que indica o que você deseja fazer:\n "
                    + "1 - Cadastrar usuário \n "
                    + "2 - Sair do sistema \n\n "
                    + "Digite 1 ou 2:");

            int opcao = input.nextInt();

            if(opcao == 1) {

                clientes.add(new Cliente());
                System.out.println("Digite o nome do cliente:");
                clientes.get(cont).setNome(input.next());
                System.out.println("Cliente " + clientes.get(cont).getNome() + " registrado no sistema com sucesso!\n");
                cont++;

            } else if(opcao == 2) {

                rodar = false;

            }


        }

        System.out.println(clientes.toString());

    }

Ao decorrer da formação Java você será capaz de entender o código que fiz acima, por isso, acho que seria interessante se depois de cada curso que você concluir você voltar aqui e dar uma olhada para observar o que você já consegue fazer e entender.

Espero ter conseguido te ajudar!

Se tiver restado qualquer outra dúvida estarei por aqui :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!