Porque acontece esse erro?

8 respostas
F

Oi pessoal, estou estudando aqui e obtive o seguinte erro:

programa.java:3: cannot find symbol
symbol  : class Conta
location: class Programa
                Conta minhaConta = new Conta();
                ^
programa.java:3: cannot find symbol
symbol  : class Conta
location: class Programa
                Conta minhaConta = new Conta();
                                       ^
2 errors
As classes que estou estudando são as seguintes:
class Conta{

        int numero;
        String dono;
        double saldo;
        double limite;
        double salario;
        
        
        boolean saca(double valor){
                if (this.saldo < valor){
                        return false;
                }
                else{
                        this.saldo = this.saldo - valor;
                        return true;
                }
        }
        
        void deposita(double quantidade){
                this.saldo += quantidade;
        }
}
e essa:
class Programa{
        public static void main(String[] args){
                Conta minhaConta = new Conta();
                minhaConta.dono = "Duke";
                minhaConta.saldo = 1000.0;
                
                System.out.println("Saldo atual: " + minhaConta.saldo);
        }
}

Estou usando o notepad++ para fazer os exercícios e compilando no prompt do windows. Quando uso o Eclipse o programa funciona. O que eu to fazendo de errado?

8 Respostas

kapa01

Você deve compilar a classe Conta e depois a classe Programa.
O Eclipse já compila as duas automaticamente por isso no Eclipse funciona normal.

U

Dúvidas, envie mp.

public class Conta{     
        private String dono;   
        private double saldo, limite;   
	
	public double getSaldo(){ 
		return this.saldo;
	}

	public Conta (String Nome, double Saldo, double Limite){
		this.dono = Nome;
		this.saldo = Saldo;
		this.limite = Limite;
	}
           
        public boolean saque(double valor){ 
                if (this.saldo > this.limite){   
                        return false;
                }   
                else if (this.saldo <= this.limite){   		
                        this.saldo = this.saldo - valor;   
                        return true; 
                }   
		return false;
        }   
           
        public void depositar(double quantidade){   
                this.saldo += quantidade;   
        }    
	
	public String toString(){
		return "Conta Bancária:\n Nome: "+this.dono+"\n Saldo atual: "+this.saldo+"\nLimite para saques: "+this.limite+"";
	}

}
class Programa{   
        public static void main(String[] args){   
		// nome / saldo / limite.
                Conta minhaConta = new Conta("João", 500, 1000);  
                   
                System.out.println(minhaConta.toString());  

		minhaConta.saque(200);
		System.out.println("Saldo atual: "+minhaConta.getSaldo()+".");
        }   
}
adriano_si
utroz:
Dúvidas, envie mp.
public class Conta{     
        private String dono;   
        private double saldo, limite;   
	
	public double getSaldo(){ 
		return this.saldo;
	}

	public Conta (String Nome, double Saldo, double Limite){
		this.dono = Nome;
		this.saldo = Saldo;
		this.limite = Limite;
	}
           
        public boolean saque(double valor){ 
                if (this.saldo > this.limite){   
                        return false;
                }   
                else if (this.saldo <= this.limite){   		
                        this.saldo = this.saldo - valor;   
                        return true; 
                }   
		return false;
        }   
           
        public void depositar(double quantidade){   
                this.saldo += quantidade;   
        }    
	
	public String toString(){
		return "Conta Bancária:\n Nome: "+this.dono+"\n Saldo atual: "+this.saldo+"\nLimite para saques: "+this.limite+"";
	}

}
class Programa{   
        public static void main(String[] args){   
		// nome / saldo / limite.
                Conta minhaConta = new Conta("João", 500, 1000);  
                   
                System.out.println(minhaConta.toString());  

		minhaConta.saque(200);
		System.out.println("Saldo atual: "+minhaConta.getSaldo()+".");
        }   
}

O que isso tem a ver com a dúvida do rapaz ???

Opa frost, estás usando o javac e só depois o java ???

Outra dica, coloque "public class" e não apenas "class" e por último, parece que sua classe se chama Programa e seu arquivo é programa.java, deve ter o mesmo nome da classe e "MINHA" é diferente de "minha" para java...

Abs []

U

Só estou mostrando a ele uma forma mais simples e correta de desenvolver o algoritmo :wink:

F

kapa01:
Você deve compilar a classe Conta e depois a classe Programa.
O Eclipse já compila as duas automaticamente por isso no Eclipse funciona normal.

Já fiz isso e o erro persiste. Obrigado!

F

adriano_si:

O que isso tem a ver com a dúvida do rapaz ???
Opa frost, estás usando o javac e só depois o java ???
Outra dica, coloque “public class” e não apenas “class” e por último, parece que sua classe se chama Programa e seu arquivo é programa.java, deve ter o mesmo nome da classe e “MINHA” é diferente de “minha” para java…

Abs []

Estou compilando assim:

javac nomeDaClasse.java

Para executar:

java -cp . nomeDaClasse

Obrigado!

adriano_si

Ainda assim você precisa igualar o nome do seu arquivo com o nome de sua classe pública…

Se sua classe está declarada assim public class programa {} seu arquivo deve se chamar “programa.java”…

Só que perceba, pelo padrão de nomenclatura definida pela Sun, classes Java sempre começam com leitras maiúsculas e continuam com minúsculas no restante do nome e a cada nome COmposto novamente letra Maiúscula… Pesquise sobre CamelCase. Logo

Programa != programa

MinhaClasse != minhaClasse

Veja se a sua classe está com o mesmo nome do seu arquivo.

Abs []

adriano_si
  • 1 detalhe que acho que você não colocou só por legibilidade, mas você está importando sua class Conta dentro da classe Programa né ???

Abs []

Criado 18 de março de 2011
Ultima resposta 18 de mar. de 2011
Respostas 8
Participantes 4