Duvida Método Transfere() [RESOLVIDO]

Sobre um erro que esta dando aqui:

[code]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;
	}
}

}[/code]

Criei mais duas classes:

[code]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);
}

}[/code]

Classe para realizar a transferência:

[code]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);

}
}[/code]

Mas informa um erro aqui n classe TestaConta:

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

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

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.

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);  
       }  
         
   }  

Acabei de fazer isso. :aff:

Obrigado pelas explicações.