Olá Guilherme! O erro que está acontecendo ao percorrer sua Array com o for()
está sendo colocado um numero como index que não existe. Perceba que você pos i <= conta.length
em seu for()
logo enquanto a variável i
for menor e igual a conta.length
o for()
continuará. No entanto, perceba que sua Array possui tamanho 3, mas o ultimo elemento possui index 2 pois o index começa com 0. Então quando você usa conta.length
é retornado o valor 3 e seu for()
continuará a execução do codigo enquanto a variável i for menor ou igual a 3. O erro ocorre quando a variável i assume o valor 3, pois como você usou o operador <=
o código é executado, no entanto sua Array não possui index 3 por isso ocorre o erro.
O correto seria você por:
for (int i = 0; i < conta.length; i++){
System.out.println(conta[i].dono);
}
Respondendo sua outra pergunta...
Sim, existe uma forma de você imprimir varias informações de sua conta. Você pode criar um método mostraInformações()
na sua classe conta, com todos as informações que você deseja imprimir e chama-lo em seu for()
. Ficaria da seguinte forma:
public class Conta {
String dono;
int numero;
double saldo;
public void mostraInformacoes(){
System.out.println("Dono da conta: " + this.dono);
System.out.println("Número da conta: " + this.numero);
System.out.println("Saldo da conta: " + this.saldo);
}
}
public class Teste {
public static void main(String[] args) {
// TODO Auto-generated method stub
Conta[]conta = new Conta[3];
conta[0] = new Conta();
conta[1] = new Conta();
conta[2] = new Conta();
conta[0].dono = "teste1";
conta[0].numero = 123;
conta[0].saldo = 1000.0;
conta[1].dono = "teste2";
conta[1].numero = 456;
conta[1].saldo = 2000.0;
conta[2].dono = "teste3";
conta[2].numero = 789;
conta[2].saldo = 3000.0;
for (int i = 0; i < conta.length; i++){
conta[i].mostraInformacoes();
}
}
}