Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro no java

Estou tentando criar um programa de acordo com o curso Java I, porém estou enfrentando alguns erros, por gentileza botar o código abaixo no compilador.

  • Atençao, irei criar dois arquivos .java. Porque? Um será ui.java onde ficará a "User Interface" e outro será rgn.java onde ficará as regras de Negócio do código.

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

    }
}

rgn.java

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

    }
}

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;
}
3 respostas

Esqueci de dizer tambem que na variavel "tipoCartao" eu já gostaria de deixar adicionado dois resultados que seria "Nacional", "Internacional" como eu faço isso?

Boa tarde Thiago,

Primeiramente no arquivo ui.java, o método main public static void main (String[] args), não pode possuir declarações de outros métodos, ou seja, os métodos painelPrincipal, painelAlterarCartao, painelCadastroCartao, painelVisualizarCliente, painelAlterarCliente, painelCadastroCliente devem estar fora do método e main e dentro da classe ui. Conforme o código abaixo:

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

E assim dentro do método main voce poderia fazer a chamada dos demais métodos.

Agora no arquivo rgn.java , temos alguns problemas, pois dentro de cada arquivo .java podemos ter apenas um public class , e o nome do arquivo deve ser exatamente igual ao nome da Classe. Então o public class Banco Deveria estar em um arquivo Banco.java , e o public class Conta Deveria estar em um arquivo Conta.java. E isso se repete para todos os public classdo arquivo.

A declaração do tipoCartao da classe Cartao com os dois valores ficaria assim:

private String tipoCartao[] = {"Nacional", "Internacional"};
solução!

Acredito que para o TipoCartao serie melhor você trabalhar com enum:

public class Cartao {
    private TipoCartao tipo;

    public TipoCartao getTipo() {
        return tipo;
    }
    public void setTipo(TipoCartao tipo) {
        this.tipo = tipo;
    }    
}

public enum TipoCartao {
    CREDITO, DEBITO;    
}

public static void main(String[] args) {
    Cartao cartao = new Cartao();
    cartao.setTipo(TipoCartao.CREDITO);        
    System.out.println(cartao.getTipo());
}

Porque usar enum ? Se amanhã surgir a necessidade de um novo tipo basta adicionar na classe o tipo, além de podermos ter outros recursos e métodos dentro do enum.

Espero ter ajudado.