Creating a Java Account Class with Encapsulation and Transaction Methods
Write a Java program to create a class called Account with private instance variables accountNumber, accountHolder, and balance. Provide public getter and setter methods to access and modify these variables. Add a method called deposit() that takes an amount and increases the balance by that amount, and a method called withdraw() that takes an amount and decreases the balance by that amount.
Sample Solution:
Java Code:
Account.java
// Define the Account class
public class Account {
// Private instance variables
private String accountNumber;
private String accountHolder;
private double balance;
// Public getter for the accountNumber variable
public String getAccountNumber() {
return accountNumber;
}
// Public setter for the accountNumber variable
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
// Public getter for the accountHolder variable
public String getAccountHolder() {
return accountHolder;
}
// Public setter for the accountHolder variable
public void setAccountHolder(String accountHolder) {
this.accountHolder = accountHolder;
}
// Public getter for the balance variable
public double getBalance() {
return balance;
}
// Public setter for the balance variable
public void setBalance(double balance) {
this.balance = balance;
}
// Method to deposit an amount and increase the balance
public void deposit(double amount) {
if (amount > 0) {
this.balance += amount;
}
}
// Method to withdraw an amount and decrease the balance
public void withdraw(double amount) {
if (amount > 0 && this.balance >= amount) {
this.balance -= amount;
}
}
}
Main.java
public class Main {
// Main method to test the Account class
public static void main(String[] args) {
// Create a new Account object
Account account = new Account();
// Set the account number, account holder, and initial balance
account.setAccountNumber("123456789");
account.setAccountHolder("Rodolfo Desiree");
account.setBalance(1000.0);
// Deposit an amount to the account
account.deposit(500.0);
// Withdraw an amount from the account
account.withdraw(200.0);
// Print the details of the account
System.out.println("Account Number: " + account.getAccountNumber());
System.out.println("Account Holder: " + account.getAccountHolder());
System.out.println("Balance: $" + account.getBalance());
}
}
Output:
Account Number: 123456789 Account Holder: Rodolfo Desiree Balance: $1300.0
Explanation:
- Private Instance Variables: The accountNumber, accountHolder, and balance variables are declared as private to ensure encapsulation.
- Public Getters and Setters: These methods provide controlled access to the private variables.
- getAccountNumber(): Returns the account number.
- setAccountNumber(String accountNumber): Sets the account number.
- getAccountHolder(): Returns the account holder.
- setAccountHolder(String accountHolder): Sets the account holder.
- getBalance(): Returns the balance.
- setBalance(double balance): Sets the balance.
- deposit Method: Takes an amount and increases the balance by that amount if it's positive.
- withdraw Method: Takes an amount and decreases the balance by that amount if it's positive and less than or equal to the current balance.
- Main Method: Tests the functionality of the Account class by creating an instance, setting its properties, performing transactions, and printing the details.
Note on Encapsulation
Encapsulation works in the above exercise by:
- Hiding Data: The private instance variables accountNumber, accountHolder, and balance are not accessible directly from outside the class.
- Controlled Access: The public getter and setter methods provide controlled access to the private variables, allowing for validation and modification when necessary.
- Data Integrity: Encapsulation helps maintain data integrity by ensuring that the internal state of the object can only be changed through well-defined methods.
Java Code Editor:
Improve this sample solution and post your code through Disqus
Previous: Creating a Java House Class with Encapsulation and Price Calculation.
Next: Creating a Java Movie Class with Encapsulation and Details Method
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics