Erro Class Public

7 respostas Resolvido
java
T

Estou aprendendo Java, e quando fui compilar no Terminal do Linux apareceu o seguinte erro: “error: class Cartao is public, should be declared in a file named”… Alguem poderia me ajudar? Lembrando que estou fazendo em .java diferente, estou com 2 pontos javas que citarei abaixo.

Segue o Código abaixo:

rgn.java (Regras de Negócio)

public class Banco {
    private static String nome = "Santander";
    private static String cnpj = "000.000.000";
Cliente clientes;
    Conta contas;
}
public class Cliente {
    private String nome;
Conta conta;
    Cartao cartao;
private void cadastrarCliente(){
        System.out.println("CADASTRO CLIENTE\n");
        System.out.println("Nome: ");
    }
}
public class Conta {
    private long conta;
    private String agencia;
    private double saldo;
    private double limite;
Cartao cartao;
}
public class Cartao {
    private String tipoCartao[];
    private String numeroCartao;
    private int codigoSeguracaCartao;
    private Date validadeCartao;
    private Date vencimentoCartao;
}

ui.rb (User Interface)

class ui {
    public static void main (String[] args){
        Banco banco = new Banco();
        Cliente cliente = new Cliente();
        Conta conta = new Conta();
        Cartao cartao = new Cartao();
System.out.println("########### BANCO SANTANDER ###########");
        System.out.println("1- Cadastrar Cliente");
        System.out.println("2- Visualizar Cliente");
        System.out.println("0- Sair");
        System.out.println("#######################################");
    }
}

7 Respostas

L
Solucao aceita

É permitido apenas UMA classe pública por arquivo .java. Recomendo que você crie um arquivo para cada classe.

T

Ok, @Lucas_Camara irei tentar… Estou aprendendo no Alura e não cheguei nessa parte de private em classes, eu sei em métodos e em variaveis os significados.

Deixa eu te perguntar uma coisa ali em “TipoCartao[]” eu queria colcoar dois resultados para escolher já pré definidios que seria “Nacional”, “Internacional”, como eu faria para mudar o jeito que escrevi?

L

Faça assim:

private String[] tipoCartao = {"Nacional", "Internacional"};
T

@Lucas_Camara obrigado, consegui resolver o rgn.java, porem o ui.java continua dando erro… Aqui abaixo está meu código novo do ui.java.

class ui {
    public static void main (String[] args){
    
        private void painelPrincipal(){
            System.out.println("########### BANCO SANTANDER ###########");
            System.out.println("1- Cadastrar Cliente");
            System.out.println("2- Alterar Cliente\n\n");
            System.out.println("3- Cadastrar Cartão");
            System.out.println("4- Alterar Cartão\n\n");
            System.out.println("5- Visualizar Cliente");
            System.out.println("0- Sair");
            System.out.println("#######################################");
        }

        // ÁREA DE CLIENTE
        private void painelCadastroCliente(){
            System.out.println("########### CADASTRAR CLIENTE ###########");
            System.out.println("Nome: ");
            System.out.println("Conta: ");
            System.out.println("Agência: ");
            System.out.println("#########################################");
        }

        private void painelAlterarCliente(){
            System.out.println("########### ALTERAR CLIENTE #############");
            // PROCURAR CLIENTE, PARA ALTERAR
            System.out.println("#########################################");
        }

        private void painelVisualizarCliente(){
            System.out.println("########### VIZUALIZAR CLIENTE #############");
            // ESCSOLHER CLIENTE PARA VIZUALIZAR INFORMAÇÕES
            System.out.println("#########################################");
        }

        // ÁREA DO CARTÃO
        private void painelCadastroCartao(){
            System.out.println("########### CADASTRAR CARTÃO ############");
            // PROCURAR CLIENTE, ESCOLHER PARA CADASTRAR CARTÃO
            System.out.println("#########################################");
        }

        private void painelAlterarCartao(){
            System.out.println("########### ALTERAR CARTÃO ##############");
            // PROCURAR CLIENTE, PARA ALTERAR
            System.out.println("#########################################");
        }

    }
}
L

Coloque a classe ui como pública.

Detalhe: Por convenção, toda classe deve começar com letra maiúscula. Portanto, o nome da classe deveria ser Ui (nome estranho kkkk)

T

“Ui” é User Interface :3…

Erros:

ui.java:5: error: illegal start of expression

private void painelPrincipal(){

^

ui.java:5: error: illegal start of expression

private void painelPrincipal(){

^

ui.java:5: error: ; expected

private void painelPrincipal(){

^

ui.java:17: error: illegal start of expression

private void painelCadastroCliente(){

^

ui.java:17: error: illegal start of expression

private void painelCadastroCliente(){

^

ui.java:17: error: ; expected

private void painelCadastroCliente(){

^

ui.java:25: error: illegal start of expression

private void painelAlterarCliente(){

^

ui.java:25: error: illegal start of expression

private void painelAlterarCliente(){

^

ui.java:25: error: ; expected

private void painelAlterarCliente(){

^

ui.java:31: error: illegal start of expression

private void painelVisualizarCliente(){

^

ui.java:31: error: illegal start of expression

private void painelVisualizarCliente(){

^

ui.java:31: error: ; expected

private void painelVisualizarCliente(){

^

ui.java:38: error: illegal start of expression

private void painelCadastroCartao(){

^

ui.java:38: error: illegal start of expression

private void painelCadastroCartao(){

^

ui.java:38: error: ; expected

private void painelCadastroCartao(){

^

ui.java:44: error: illegal start of expression

private void painelAlterarCartao(){

^

ui.java:44: error: illegal start of expression

private void painelAlterarCartao(){

^

ui.java:44: error: ; expected

private void painelAlterarCartao(){

^

18 errors
L

Ah véi, agora que reparei que você criou métodos dentro de métodos. Isso não pode. Todos os métodos private estão dentro do método main.

Criado 18 de julho de 2016
Ultima resposta 18 de jul. de 2016
Respostas 7
Participantes 2