Duvida Método Transfere() [RESOLVIDO]

5 respostas
M

Sobre um erro que esta dando aqui:

public class Conta {
	int numero;
	String dono;
	double saldo;
	
	boolean  saca (double valor){
		if (saldo > valor ){
			this.saldo -= valor;
			return true;
		}else{
		return false;
		}
	}
	void deposita (double valor){
		double novoSaldo = this.saldo + valor;
		this.saldo = novoSaldo;	
	}
	
	boolean transfere (Conta destino, double valor){
		boolean retirou = this.saca (valor);
		if (retirou == false){
			return false;
		}else{
			destino.deposita (valor);
			return true;
		}
	}
	
		
}

Criei mais duas classes:

public class TestaConta {
	public static void main (String [] args){
		
		Conta c1 = new Conta ();
		
		c1.numero = 12364;
		c1.dono = "Dj";
		c1.saldo = 1000;
		
		if (c1.saca(100)){
			System.out.println("Consegui sacar, agora o meu saldo consta: " + c1.saldo);
		}else{
		    System.out.println("Não foi possível sacar");	
		}
		c1.deposita(50);
		    System.out.println("Após depósito o meu valor ficou em: " + c1.saldo);  
		    
		c1.transfere(c2,50);
	}
	
}

Classe para realizar a transferência:

public class minhaConta {
 public static void main (String [] args){
		
		Conta c2 = new Conta ();
		
		c2.numero = 135798;
		c2.dono = "Marcos";
		c2.saldo = 1000;
		
		System.out.println(c2.saldo);
 }		
}

Mas informa um erro aqui n classe TestaConta:

[IMG]http://i220.photobucket.com/albums/dd283/MarcosRDD/duvidatransfere.jpg[/IMG]

5 Respostas

Eric_Yuzo

Na classe TestaConta, a variável c2 não foi criada. Por isso o erro.

M

Então foi desnecessário criar a classe minhaConta?

Eric_Yuzo

A classe MinhaConta que você postou apenas cria a Conta, seta os valores e exibe o saldo. Ela não tem relação com a classe TesteConta.

A variável c2 foi criada no método main da classe MinhaConta, portanto o escopo dela é o main, ou seja, ela existe apenas dentro das chaves do método main. Por isso não pode ser chamado na classe TesteConta.

aajjbb

exato, você nao instanciou o objeto c2 na classe TestaConta, pra que esse seu codigo funcione, deveria estar assim.

public class TestaConta {  
       public static void main (String [] args){  
             
           Conta c1 = new Conta ();  
           Conta c2 = new Conta ();

           c1.numero = 12364;  
           c1.dono = "Dj";  
           c1.saldo = 1000;  
             
           if (c1.saca(100)){  
               System.out.println("Consegui sacar, agora o meu saldo consta: " + c1.saldo);  
           }else{  
               System.out.println("Não foi possível sacar");     
           }  
           c1.deposita(50);  
               System.out.println("Após depósito o meu valor ficou em: " + c1.saldo);    
                
           c1.transfere(c2,50);  
       }  
         
   }
M

Acabei de fazer isso. :aff:

Obrigado pelas explicações.

Criado 18 de novembro de 2010
Ultima resposta 18 de nov. de 2010
Respostas 5
Participantes 3