Utilizar o valor de um método em outro método na mesma Classe

Olá. Gostaria de utilizar o valor de um Método em outro método, não sei se é possível e como fazer.

Exemplo:

public class Teste{

String nome;
int idade;
double saldo;

void saca (double sacar){
double retirar = this.saldo - sacar;
this.saldo += retirar;

}

double rendimento(){

}
}

Nessa parte gostaria de utilizar o valor que foi sacado para apresentar alguma informação no rendimento.

Se possível desde já agradeço.

Aproveitando, fiz esse código mas no saldo está me voltando um valor 0. E gostaria que ficasse com valor 200.

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

    Conta conta;
    conta = new Conta();
    
    conta.saca(200);
    conta.deposita(400);
    System.out.println("O saldo da conta é: " +conta.saldo);
    
System.out.print("O rendimento mensal é: " +conta.rendimentoMensal);

/* Está me retornando o saldo = 0;
E o rendimento 200 (está correto) */
    
   
}

}
class Conta{
String titular;
int numero;
String agenencia;
double saldo;
String abertura;
double rendimentoMensal;

void deposita(double valor1){
    double depositar = this.saldo + valor1; 
    this.saldo += depositar;
    this.rendimentoMensal += valor1;
    
    }

void saca(double valor2){
    double retira = this.saldo - valor2;
    this.saldo = retira;
    this.rendimentoMensal -= valor2;
}

}

Você invoca o método deposita depois de sacar. Como que você saca dinheiro, sem antes de alguma forma o dinheiro ser depositado? Invertendo a ordem da invocação, o saldo já aparece como “200”.

Outra coisa (apenas uma sugestão, mas não muda o código, neste caso):

Neste método, você utiliza a variável com o this antes da variável. (this.saldo). O this é mais usado para indicar que a variável que você está se referindo é uma variável de mesmo nome que existe na classe, porém esta é vinda em algum parâmetro. Por exemplo:

public class NadaDeMais{

double saldo;

public void soTestandoMesmo(double saldo){

saldo = this.saldo; // Ou seja, a variável saldo existente na classe recebe o valor que a variável saldo vinda por parâmetro está carregando. 

}

}

Se eu lanço this em tudo, neste caso, o compilador não irá reconhecer em nenhum momento a variável da classe, apenas a que veio por parâmetro.

Como no seu caso nada vem por parâmetro, não há necessidade de usar o this e recomendo não usar assim, visto que quando de fato precisar, talvez você não o use de forma correta, entendeu?

1 curtida

Também, essa sua ideia sobre rendimento está errada. Na variável rendimentoMensal você apenas soma os depositos ou subtrai os saques, sendo que a ideia de “rendimento” na verdade é um lucro percentual à quantidade de dinheiro que há na conta, não apenas somando os depósitos.

Sobre os métodos, daria para simplificá-los ainda mais:

De:

void saca (double sacar) {
double retirar = this.saldo - sacar;
this.saldo += retirar;

}

Para:

public void saca (double sacar) {
novoSaldo = saldo - sacar;

}

A variável novoSaldo eu crio fora do método.
No caso você pode fazer isso com todos os seus métodos ai, deixando-os mais simples.

Agora, uma dica:
Repare que quando posto código-fonte ele fica “bonitinho”? Todo formatado?

Então, na caixa de respostas tem uma ferramenta com o ícone “</>”, que selecionando o código e apertando ele, o código já é formatado rapidamente, deixando-o mais legível e de fácil entendimento. Use-o das próximas vezes, ta bom? Mais dicas estão aqui nesse link:

1 curtida

a variavel saldo, esta sem valor de inicializacao. pode ser isso. cria o construtor da conta passando o saldo inicial.

public Conta(double saldo) {
    this.saldo = saldo;
}

o método sacar esta estranho também. melhor usar o exemplo que os colegas já deram.

public void sacar(double valorSaque) {
      this.saldo -= valorSaque;
}

public void depositar(double valorDeposito) {
      this.saldo += valorDeposito;
}

pela sua operacao o rendimento é a mesma coisa do saldo, caso seja uma poupanca, teria que pegar o saldo diario e multiplicar por um valor percentual diario e somar ao rendimento. Por exemplo, se o rendimento é 5% ao mes, voce multiplica todo dia por 0,05/30 seguindo a sua logica, eu entendo que deveria ser assim

public void sacar(double valorSaque) {
      this.saldo -= valorSaque;
      this.rendimento -= valorSaque*(0.05/30);
}

public void depositar(double valorDeposito) {
      this.saldo += valorDeposito;
      this.rendimento += valorDeposito*(0.05/30);
}
2 curtidas

Agradeço a todos os comentários! Me ajudaram muito não só a resolver meu “problema” mas em como fazer devidamente. Agradeço pela grande força!

@WellingtonW, se sua dúvida foi sanada, marque a resposta que você considera como sendo a solução. Logo abaixo tem um quadrinho com um “V” (do lado da opção “curtir”). Se selecioná-lo, ele será mostrado no topo do tópico e nas buscas aparecerá no título que ele tem a solução também.