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.