2015-05-14 7 views
-4

Я могу вычесть его только с 85000. Потому что это значение инициализируется. в качестве примера можно сказать, что я делаю 2000, он будет вычитаться из 85000 и дает 83000. Проблема в том, что если я делаю это второй раз, значение вывода вычитается из 85000 не из 83000. Как я могу обновить свое значение.? ?Я хочу обновить текущий баланс

public class Withdrawal { 

    private double amount; 
    private double currentBalance=85000.00; 
    double total; 

     public Withdrawal(double amount1,double currentBalance) { 
       this.currentBalance = currentBalance; 
       this.amount = amount1; 
     } 

     public Withdrawal(double currentBalance){ 
       this.currentBalance = currentBalance; 
     } 

     public Withdrawal(){ 

     } 

     public void setAmount(double amount1){ 

      this.amount =amount1; 
     } 

     public double getAmount(){ 
      return amount; 

     } 
     public void setCurrentBalance(double currentBalance) { 
      this.currentBalance =currentBalance; 

     } 

     public double getCurrentBalance() { 
      return currentBalance; 
     } 


     public double getTotalAmount(){ 
      total= getCurrentBalance()- getAmount(); 
      return total; 
     } 
} 
+1

Нам нужно будет увидеть код, который на самом деле вызывает эти методы. –

+0

На самом деле вы не обновляете текущий баланс, если только вы не вызываете setCurrentBalance в своем коде в другом месте. Если вы хотите, чтобы текущий баланс обновлялся, обновите его после того, как вы сделаете вывод ... – brso05

+0

возможно, изменив где-то значение текущего баланса? Я не вижу, чтобы ты это делал. – zubergu

ответ

1

Я думаю, вы немного смущены тем, как хранятся объекты.

Вы совершенно правы, думая, что у Withdrawal будет свой собственный объект, но он не будет использоваться так, как вы думаете.

Во-первых, вы, вероятно, нужен объект учетной записи, чтобы держать свои деньги (А вывод не имеет денег, это вывод!)

Счет может быть простым:

public class Account { 
    double balance; 

    public void withdraw(double amount) { 
     this.balance -= amount; 
    } 

    public double getBalance() { 
     return this.balance; 
    } 
} 

Единственная причина для объекта вывода было бы, возможно, хранить даты и сумму?

+0

где у меня должен быть этот код. И как я могу связать это с моим кодом вывода – Kingsman

+0

, где я должен инициализировать значение для учетной записи, например 85000 – Kingsman

0

Вы всегда устанавливаете значения суммы и текущего баланса один раз, во время конструктора.

проблема, если я сделать это второй раз, то значение вывода вычитают из 85000 не из 83000

убедитесь, что, когда вы вычитания суммы (однако вы пытаетесь сделать это), что вы установите текущий баланс на текущий баланс - сумма

public void withdraw(int amount) 
{ 
    this.currentBalance -= amount; 
} 

Таким образом, когда вы вызываете его, и он проверяет значение от текущего баланса, он будет изменен на значение старого баланс минус количество. Так что в вашем случае это будет 85000-2000 в первый раз, и когда функция отзыва снова будет вызвана, она получит доступ к this.currentBalance, который будет установлен на 83000 из последнего выхода.

+0

Как я могу это сделать, используя arraylist – Kingsman

Смежные вопросы