Build a BankAccount class
Description: Create a class BankAccount with a private balance. Add deposit(amount) and withdraw(amount). Refuse a negative deposit and a withdraw bigger than the balance (throw an exception). Test it.
Hint:
- Keep the field
privateand give a getter only. - Throw
IllegalArgumentExceptionandIllegalStateException.
Solution
class BankAccount {
private double balance;
void deposit(double amount) {
if (amount <= 0) throw new IllegalArgumentException("Deposit must be positive");
balance += amount;
}
void withdraw(double amount) {
if (amount > balance) throw new IllegalStateException("Not enough balance");
balance -= amount;
}
double getBalance() { return balance; }
}
public class Main {
public static void main(String[] args) {
BankAccount acc = new BankAccount();
acc.deposit(1000);
acc.withdraw(250);
System.out.println(acc.getBalance());
try {
acc.withdraw(5000);
} catch (IllegalStateException e) {
System.out.println("Error: " + e.getMessage());
}
try {
acc.deposit(-5);
} catch (IllegalArgumentException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
Output
750.0
Error: Not enough balance
Error: Deposit must be positive
How it works
- The balance is private, so the only way to change it is through the two methods which check the values.
Read Java Encapsulation.
Learn more about the similar topics:
| Tutorials |
|---|
| No Content Found. |
| Exercises & Assignments |
|---|
| No Content Found. |
| Interview Questions & Answers |
|---|
| No Content Found. |