Dúvida usando o IF

Fiz um exercício que o professor pediu, ele ta pedindo pra transferir 500 reais da contaDoJoao para a contaDaMaria. Fiz isso, mas tem um problema. usei um IF pra informar que se o saldo do joao for menor do que o valor q ele quer transferir, nao realizará a transferencia e exibirá uma mensagem dizendo o q saldo é menor que o valor q ele deseja sacar/transferir. mas tem um probleminha… eu coloco isso, e mesmo assim ele continua depositando na contaDaMaria os 500 reais. Alguém me ajuda a arrumar por favor???
ai vão as duas coisas q eu fiz, CONTABANCARIA E TESTECONTABANCARIA.

[code]public class ContaBancaria{
private double Saldo;

public void depositar (double valor){
Saldo= valor+Saldo;}

public double sacar (double valor){

// Se o usuário tentar sacar um valor maior do que ele tem na conta.
if (Saldo>= valor){
Saldo= Saldo-valor;

return valor;}

else

System.out.println(“O saldo é inferior ao valor que deseja sacar.”);

return 0.0;}

public double getSaldo(){
return Saldo;}}

[/code]

[code]public class TesteContaBancaria{
public static void main(String [] args){

ContaBancaria contaDoJoao=new ContaBancaria();
ContaBancaria contaDaMaria=new ContaBancaria();

contaDoJoao.depositar(1000);
contaDaMaria.depositar(50);

contaDoJoao.sacar(500);
contaDaMaria.depositar(500);

System.out.println(“Saldo da conta do Joao é:”+ contaDoJoao.getSaldo());
System.out.println(“Saldo da conta da Maria é:”+ contaDaMaria.getSaldo());
}}[/code]

Não sei onde e como colocar o IF, nao sei se é pra colocar na ContaBancaria ou no TesteContaBancaria, e eu escrevo o seguinte…

if(Saldo>=500){ contaDaMaria.depositar(500); } else System.out.println("O saldo é inferior ao valor que deseja sacar/transferir); contaDaMaria.depositar(0);

e continua dando errado!

o metodo sacar retorna um double…

entao passe o valor do retorno do metodo sacar como parametro para o metoda depositar

 contaDaMaria.depositar(contaDoJoao.sacar(500));

ps.: sempre defina variaveis com a inicial minuscula(nomeDeVariavel), é apenas uma boa pratica de programacao. E tb teste as duas variaveis double com o Double.compare(doubleA, doubleB) => se o resultado foi -1 a variavel doubleA é maior, 1 a variavel doubleB é maior e 0 sao iguais.

if (Double.compare(saldo,valor) != 1){  //** neste caso vai entrar no if caso o valor de saldo for maior(-1) ou igual(0).
    saldo= saldo-valor;  
   
    return valor;
} else   
   System.out.println("O saldo é inferior ao valor que deseja sacar."); 
   return 0.0;
}

[]'s

Obrigada!!! Valeu mesmoo!!!

[]'s

Se for para faculdade pode algo mais simples ^^

Método transferir valor na classe Conta Bancaria, ta so no osso, mais para questão de aprendizado pode dar uma estudada mais nele.

public void transferirValor(ContaBancaria contaDoDeposito, double valor){ if (this.saldo >= valor){ this.sacar(valor); contaDoDeposito.depositar(valor); }else{ System.out.println("Tranferencia não efetuada"); } }