Problema com compilação exemplo java

7 respostas
mfdzerohour

Olá tudo bem, estou tendo problemas com um programa, na compilação, na apostila está como escrito no mesmo, deve haver um erro no exercicio da mesma, qual seria a correção?

Programa:

class conta {

int numero;

String nome;

double saldo;

double limite;

//Quando uma variavel é declarada diretamente dentro do escopo da classe, é chamada de variavel de objeto,

//ou atributo. Pg30

}
class programaConta {

public static void main (String[] args) {

conta minhaConta;

minhaConta = new conta();
minhaConta.nome = "Duke";
            minhaConta.saldo = 1000.0;

            System.out.println("Saldo atual: " + minhaConta.saldo);
    }

}

erro encontrado:

Exception in thread “main” java.lang.NoSuchMethodError: main

Desde já agradeço,

Marcelo Duarte

7 Respostas

peczenyj

vc tem que executar a classe programaConta

java programaConta

ou

java -cp . programaConta

mfdzerohour
Resolvido o erro, mas ainda tenho duvida, fiquei em duvida do porque ele gera um Conta.class e um programaConta.class qual seria o beneficio que isto proporcionaria, pelo visto ele faz uma consulta externa ao Conta.class, não seria mais util colocar tudo dentro do programaConta onde ele não deveria fazer consultas externas, ficando até mais rapido?

Valeu pela ajuda pessoal, o problema é que ainda to iniciando em java nõ sei nada mesmo, conforme vou vendo as paginas da apostila vou aprendendo, mas gostei muito da linguagem.

outro erro que encontrei foi:

Conta.java:35: cannot find symbol
symbol : method saca(int)
location: class conta
boolean consegui = minhaConta.saca(2000);

meu código está assim:

class conta {

int numero;

String nome;

double saldo;

double limite;
double saca;
    double deposita;

}

class programaConta {

public static void main(String[] args) {

conta minhaConta;

minhaConta = new conta();
minhaConta.nome = "Duke";
            minhaConta.saldo = 1000.00;

            boolean consegui = minhaConta.saca(2000);
                    if (consegui) {
                            System.out.println("Consegui sacar!");
                    }
                    else {
                            System.out.println("Não consegui sacar");

                    }
            System.out.println("Saldo atual: " + minhaConta.saldo);
    }

}


furutani

Ele não esta encontrando o metodo saca() na classe conta.
Crie esse metodo e o problema será solucionado.

LPJava

mfdzerohour:
Olá tudo bem, estou tendo problemas com um programa, na compilação, na apostila está como escrito no mesmo, deve haver um erro no exercicio da mesma, qual seria a correção?

Programa:

class conta {

int numero;

String nome;

double saldo;

double limite;

//Quando uma variavel é declarada diretamente dentro do escopo da classe, é chamada de variavel de objeto,

//ou atributo. Pg30

}
class programaConta {

public static void main (String[] args) {

conta minhaConta;

minhaConta = new conta();
minhaConta.nome = "Duke";
            minhaConta.saldo = 1000.0;

            System.out.println("Saldo atual: " + minhaConta.saldo);
    }

}

erro encontrado:

Exception in thread “main” java.lang.NoSuchMethodError: main

Desde já agradeço,

Marcelo Duarte

vc tem que executa a class do main, porem tb deve compilar a class q n tem o main()…

LPJava

mfdzerohour:
Resolvido o erro, mas ainda tenho duvida, fiquei em duvida do porque ele gera um Conta.class e um programaConta.class qual seria o beneficio que isto proporcionaria, pelo visto ele faz uma consulta externa ao Conta.class, não seria mais util colocar tudo dentro do programaConta onde ele não deveria fazer consultas externas, ficando até mais rapido?

Valeu pela ajuda pessoal, o problema é que ainda to iniciando em java  sei nada mesmo, conforme vou vendo as paginas da apostila vou aprendendo, mas gostei muito da linguagem.

outro erro que encontrei foi:

Conta.java:35: cannot find symbol
symbol : method saca(int)
location: class conta
boolean consegui = minhaConta.saca(2000);

meu código está assim:

class conta {

int numero;

String nome;

double saldo;

double limite;
double saca;
    double deposita;

}

class programaConta {

public static void main(String[] args) {

conta minhaConta;

minhaConta = new conta();
minhaConta.nome = "Duke";
            minhaConta.saldo = 1000.00;

            boolean consegui = minhaConta.saca(2000);
                    if (consegui) {
                            System.out.println("Consegui sacar!");
                    }
                    else {
                            System.out.println("Não consegui sacar");

                    }
            System.out.println("Saldo atual: " + minhaConta.saldo);
    }

}

-----------------------------------------------------------------------------------------

respondendo o programa: a questao que saca na class Conta é q vc declarou como variavel de instancia, e nao como metodo e quando vc chama na class principal vc ta chamando como metodo… vc teria que ter na class conta isso aqui

void saca(int real){
 saca = real;
}

que material vc está estudando?

Bom assim nao responder sua segunda pergunta sobre ter duas class, pois quero q vc perceba qdo ver interface e polimorfismo… mais so para dar uma introdução tem programa simples como esse q vc pode fazer em uma uncia class, mais vamos dizer que vc criei uma class popupança… entao vc precisaria apenas chamar a class conta… e usar os metodos acesseveis desta conta, sendo que para depositar e sacar eh o mesmo metodo, poderia apenas sofrer alguma alteração em relação a outro tipo de conta… mais quero q vc entenda que isso facilita a reutilização de codigo… e software… mantenha a “calma” mais la na frente vc vai ver q eh bem melhor vc desenvolver ate pequenos programas desta forma! qualquer duvida eh so postar heeh!

mfdzerohour

O material que estou estudando é da Caelum FJ-11, um otimo material por sinal, mas esse exemplo que citei pagina 33 dela, fiquei meio na duvida, ta meio confuso, mas muito obrigado.

LPJava

em especifico nao conheco muito o material da caelum, ja pude dar uma olhada porem nunca estudei eles, mas me parece de boa qualidade… e direto. mais tb achei esse exemplo meio confuso na explicacao para iniciante com conhecimento ou pouco… :slight_smile:

Criado 5 de novembro de 2006
Ultima resposta 7 de nov. de 2006
Respostas 7
Participantes 4