Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
12
respostas

PROBLEMA AO RODAR JAVA NO NETBEANS!

Não estou conseguindo rodar java no NetBeans. Ja baixei a JDK e tudo que tinha que baixar, porem ele nao me permite criar classe. Exemplo: no caso do meu código abaixo ele nao deixa criar a Classe Programa e mesmo eu tirando a classe programa, ele nao consegue pegar os dados da classe Pessoa.

public class Conta {
    int numero;
    Pessoa titular;
    double saldo;
    int agencia;

    void deposita(double valorASerDepositado) {        
        this.saldo += valorASerDepositado;
    }

    void saca(double valorASerSacado) {
        if(this.saldo >= valorASerSacado) {
        this.saldo -= valorASerSacado;
    }
  }
    void transfere(double valor, Conta destino) {
        this.saldo -= valor;
        destino.saldo += valor;
    }

    class Pessoa {
        String nome;
        String cpf;
        String dataNascimento;
    }

    **class Programa   //ESSE AKI, SE EU CRIAR, O PROGRAMA NÃO COMPILA//** {

    public static void main(String[] args) {
        Conta mauricio = new Conta();
        mauricio.numero = 123;
        mauricio.saldo = 800.0;
        mauricio.agencia = 842;


       **APARECE UM PONTO DE ! VERMELHO AO LADO DE  mauricio.titul...new Pessoa(); E AI NÃO COMPILA!**
    mauricio.titular = new Pessoa();
        mauricio.titular.nome = "Mauricio Aniche";
        mauricio.titular.cpf = "123456789";
        mauricio.titular.dataNascimento = "10/10/1975";

        System.out.println(mauricio.titular.nome);

        mauricio.deposita(100.0);

        mauricio.saca(5000.0);

        Conta guilherme = new Conta();
        guilherme.numero = 456;
        guilherme.saldo = 1200.0;

        guilherme.deposita(100.0);        

        mauricio.transfere(100.0, guilherme);

        System.out.println(mauricio.saldo);
        System.out.println(guilherme.saldo);
    }
  }
}

OBS: NAO QUERO MUDAR DE PROGRAMA, QUERO FICAR NO NETBEANS MESMO!

12 respostas

Iann,

Aparentemente você está criando as classes Pessoa e Programa dentro da classe Conta.

Antes de criar uma nova classe, feche a classe anterior e tente compilar novamente.

Abraço

Iann,

Feche as classes.

public class Pessoa {
    //...


} // fechamento da classe.

class Programa {
    //...


} // fechamento da classe

Pessoal, fiz o que voces mandaram, fechei a classe Conta e abri a Class Programa, mas mesmo assim ainda em um ! Vermelho no "Pessoa();" do "new Pessoa();" .............Ah, lembrando que a minha public class é a "Conta", e não a "Pessoa".O que faço para consertar? Vlw, muito obrigado pela ajuda :) Vide codigo abaixo:

public class Conta {
    int numero;
    Pessoa titular;
    double saldo;
    int agencia;

    void deposita(double valorASerDepositado) {        
        this.saldo += valorASerDepositado;
    }

    void saca(double valorASerSacado) {
        if(this.saldo >= valorASerSacado) {
        this.saldo -= valorASerSacado;
    }
  }
    void transfere(double valor, Conta destino) {
        this.saldo -= valor;
        destino.saldo += valor;
    } 
    class Pessoa {
        String nome;
        String cpf;
        String dataNascimento;
    }
 }

    class Programa {

    public static void main(String[] args) {
        Conta mauricio = new Conta();
        mauricio.numero = 123;
        mauricio.saldo = 800.0;
        mauricio.agencia = 842;


        mauricio.titular = new Pessoa();
        mauricio.titular.nome = "Mauricio Aniche";
        mauricio.titular.cpf = "123456789";
        mauricio.titular.dataNascimento = "10/10/1975";

        System.out.println(mauricio.titular.nome);

        mauricio.deposita(100.0);

        mauricio.saca(5000.0);

        Conta guilherme = new Conta();
        guilherme.numero = 456;
        guilherme.saldo = 1200.0;

        guilherme.deposita(100.0);        

        mauricio.transfere(100.0, guilherme);

        System.out.println(mauricio.saldo);
        System.out.println(guilherme.saldo);
    }
  }

EU QUIS DIZER:" ainda tem um ! Vermelho no "Pessoa();" do "new Pessoa();" .........." Me ajudem a consertar, vlw!

class Pessoa { 
String nome; 
String cpf;
String dataNascimento;
 } // uma chave a mais que provavelmete é da classe Conta
 }

Sim, realmente Felipe, o problema era a chave. Daí fechei a classe Conta e depois a classe Pessoa, a partir daí sumiu todos os erros, e na hora que fui compilar, olha o que apareceu:

Erro: o método main não foi encontrado na classe Banco.Conta; defina o método main como:\n public static void main(String[] args)\nou uma classe da aplicação JavaFX deve expandir javafx.application.Application Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

SEGUE ABAIXO CÓDIGO CORRIGIDO:

public class Conta {
    int numero;
    Pessoa titular;
    double saldo;
    int agencia;

    void deposita(double valorASerDepositado) {        
        this.saldo += valorASerDepositado;
    }

    void saca(double valorASerSacado) {
        if(this.saldo >= valorASerSacado) {
        this.saldo -= valorASerSacado;
    }
  }
    void transfere(double valor, Conta destino) {
        this.saldo -= valor;
        destino.saldo += valor;
    }
  }
    class Pessoa {
        String nome;
        String cpf;
        String dataNascimento;
    }

    class Programa {

    public static void main(String[] args) {
        Conta mauricio = new Conta();
        mauricio.numero = 123;
        mauricio.saldo = 800.0;
        mauricio.agencia = 842;

        mauricio.titular = new Pessoa();
        mauricio.titular.nome = "Mauricio Aniche";
        mauricio.titular.cpf = "123456789";
        mauricio.titular.dataNascimento = "10/10/1975";

        System.out.println(mauricio.titular.nome);

        mauricio.deposita(100.0);

        mauricio.saca(5000.0);

        Conta guilherme = new Conta();
        guilherme.numero = 456;
        guilherme.saldo = 1200.0;

        guilherme.deposita(100.0);        

        mauricio.transfere(100.0, guilherme);

        System.out.println(mauricio.saldo);
        System.out.println(guilherme.saldo);
    }
  }

E agora, o que fazer? Obrigado! :)

Se você está usando o netbeans, e está classes separadas no netbeans precisa definir os métodos como public para ter acesso.

solução!

Iann,

Crie um arquivo para cada classe e rode a classe Programa

Deu certo!! Tive de criar um arquivo para cada classe!!!! Muito Obrigado pessoal!!! :D :D :D

Disponha Iann, essa questão de colocar as classes tudo junto complica um pouco!

heheh, pois é! Obrigado!