Estou aprendendo java e estou numa atividade que preciso fazer uma classe que também é um vetor de 20 posições, e o erro aparece:
cliente[] cli = new cliente[20];
cli[0] = new cliente();
cli[1] = new cliente();
cli[2] = new cliente();
cli[3] = new cliente();
cli[4] = new cliente();
cli[5] = new cliente();
cli[6] = new cliente();
cli[7] = new cliente();
cli[8] = new cliente();
cli[9] = new cliente();
cli[10] = new cliente();
cli[11] = new cliente();
cli[12] = new cliente();
cli[13] = new cliente();
cli[14] = new cliente();
cli[15] = new cliente();
cli[16] = new cliente();
cli[17] = new cliente();
cli[18] = new cliente();
cli[19] = new cliente();
Essa é sua classe principal, certo? Onde está o public static void main ?
Esse é o código completo dessa classe? Pois parece que alguma parte antes dela pode estar afetando essas declarações. Pode postar o código completo (inclusive imports no topo)?
public class principal {
public static void main(String[] args) {
cliente chamar = new cliente();
chamar.menu();
}
}
import java.util.Scanner;
public class cliente {
private String nome;
private int numeroConta;
private double saldo;
Scanner scan = new Scanner(System.in);
cliente[] cli = new cliente[20];
cli[0] = new cliente();
cli[1] = new cliente();
cli[2] = new cliente();
cli[3] = new cliente();
cli[4] = new cliente();
cli[5] = new cliente();
cli[6] = new cliente();
cli[7] = new cliente();
cli[8] = new cliente();
cli[9] = new cliente();
cli[10] = new cliente();
cli[11] = new cliente();
cli[12] = new cliente();
cli[13] = new cliente();
cli[14] = new cliente();
cli[15] = new cliente();
cli[16] = new cliente();
cli[17] = new cliente();
cli[18] = new cliente();
cli[19] = new cliente();
//* int indice = 20;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getNumeroConta() {
return numeroConta;
}
public void setNumeroConta(int numeroConta) {
this.numeroConta = numeroConta;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public void CadastraCliente() {
System.out.println("Insira o nome do cliente: ");
this.cli[indice].setNome(scan.nextLine());
System.out.println("Insira o numero da conta do cliente: ");
cli[indice].setNumeroConta(scan.nextInt());
scan.nextLine();
System.out.println("Insira o saldo da conta: ");
cli[indice].setSaldo(scan.nextDouble());
scan.nextLine();
this.indice += 1;
}
public void Exibir() {
System.out.println("Dados do cliente \n" + toString());
}
@Override
public String toString() {
return "Nome: " + this.getNome() +
"\tNumero da Conta: " + this.getNumeroConta() +
"\t saldo: " + this.getSaldo();
}
public void Listar() {
int i = 0;
while (i < cli.length) {
cliente objCliente = cli[i];
if (objCliente != null ) {
objCliente.Exibir();
}
}
}
public void Alterar() {
System.out.println("Informe o numero da conta do cliente desejado: ");
int conta = scan.nextInt();
scan.nextLine();
for (cliente c : this.cli) {
if (c != null && c.getNumeroConta() == conta) {
System.out.println("Dados atuais do cliente: ");
c.Exibir();
System.out.println("Digite o novo Nome para o cliente: ");
c.setNome(scan.nextLine());
System.out.println("Digite o novo Numero da Conta: ");
c.setNumeroConta(scan.nextInt());
scan.nextLine();
System.out.println("Digite o novo saldo para essa conta: ");
c.setSaldo(scan.nextDouble());
scan.nextLine();
System.out.println("Conta atualizado com sucesso");
break;
}
}
}
public void menu() {
while(true) {
// Limpar a console
for (int i = 0; i < 50; ++i) System.out.println();
System.out.println("M E N U P R I N C I P A L");
System.out.println("**** Banco ****");
System.out.println("Escolha uma opção: ");
System.out.println("(C)adastrar\t\t(L)istar\t(A)lterar");
String textoMaiusculo = scan.nextLine().toUpperCase();
char letra = textoMaiusculo.charAt(0);
if (letra == 'C') {
CadastraCliente();
} else if (letra == 'L') {
Listar();
} else if (letra == 'A') {
Alterar();
}else if (letra == 'S') {
System.out.println("Tchau !!!");
System.exit(0);
}
}
}
}
Essas instruções não podem ficar soltas no corpo da classe, elas precisam estar dentro de um método, dentro um construtor ou dentro de um bloco de inicialização.