Erro Class Public

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("#######################################");
    }
}

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

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?

Faça assim:

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

@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("#########################################");
        }

    }
}

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)

“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

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.