Erro syntax error on token ";" { expected afther this token

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();

image

Por que isso acontece?

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)?

Abraço.

1 curtida

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.

1 curtida