What will we be teaching?
We will be teaching Unit 5, Writing Classes. We will explore the anatomy of a class, fields, methods, and constructors. We will learn how constructors initialize objects and the different types, how mutators (setters) modify object properties, and how static variables belong to the class rather than any instance. By the end, there will be a solid understanding of how to create and manage objects efficiently in Java
Unit 5 Topics For Learning:
- 5.1 Anatomy of a Class
- 5.2 Constructors
- 5.4 Accessor Methods
- 5.5 Mutator
- 5.7 Static Variables and Methods
Why do we need to write classes?
Writing classes in Java is essential because it allows you to organize your code into reusable, modular components. Think of a class as a blueprint for creating objects. Without classes, your code would be cluttered and difficult to manage, especially as projects grow larger. Why not just write all your code in one place? Well, that would make it hard to maintain and update, leading to errors and inefficiency. Classes enable you to encapsulate data and behavior, making your code more flexible, scalable, and easier to troubleshoot. This structured approach is key for building complex, real-world applications.
Homework Assignment: Constructors, Mutators, Accessors, and Static Variables in Java
Objective:
Create a BankAccount
class to practice working with constructors, mutators (setters), accessors (getters), and static variables in Java.
Instructions:
Class: BankAccount
- Instance Variables:
String accountHolderName
double balance
- Static Variable:
static int totalAccounts
(tracks the number of accounts created)
Constructors:
- Default constructor: Sets
accountHolderName
to"Unknown"
andbalance
to0.0
. - Parameterized constructor: Accepts
accountHolderName
andbalance
as parameters. - Both constructors should increment
totalAccounts
.
Mutator Methods:
void setAccountHolderName(String name)
: Updates the account holder’s name.void deposit(double amount)
: Adds money to the balance.void withdraw(double amount)
: Subtracts money from the balance (if funds are available).
Accessor Methods:
String getAccountHolderName()
: Returns the account holder’s name.double getBalance()
: Returns the account balance.static int getTotalAccounts()
: Returns the total number of accounts created.
Main Program (BankApp
):
- Create three
BankAccount
objects. - Modify account holder names and balances using setters.
- Print account details using getters.
- Display the total number of accounts created.
Example Output:
Account Holder: Alice
Balance: 500.0
Account Holder: Bob
Balance: 1000.0
Account Holder: Charlie
Balance: 750.0
Total number of accounts created: 3
Submission:
Submit a Jupyter Notebook file containing your final code.
public class BankAccount {
// Private fields
private String accountHolderName;
private double balance;
static int totalAccounts;
public BankAccount(String accountHolderName, double balance, int totalAccounts){
this.accountHolderName = accountHolderName;
this.balance = balance;
this.totalAccounts += 1;
}
public BankAccount(){
this.accountHolderName = "Unknown";
this.balance = 0.0;
this.totalAccounts += 1;
}
public void setAccountHolderName(String accountHolderName) {
this.accountHolderName = accountHolderName;
}
public void deposit(double amount) {
this.balance += amount;
}
public void withdraw(double amount) {
this.balance -= amount;
}
public String getAccountHolderName() {
return accountHolderName;
}
public static int getTotalAccounts() {
return totalAccounts;
}
public double getBalance() {
return balance;
}
}
BankAccount account1 = new BankAccount();
BankAccount account2 = new BankAccount();
BankAccount account3 = new BankAccount();
account1.setAccountHolderName("Anusha");
account1.deposit(10000.0);
account1.withdraw(500.0);
account2.setAccountHolderName("Avanthika");
account2.deposit(2000.0);
account3.setAccountHolderName("Vibha");
account3.deposit(3000.0);
System.out.println("Account 1 - Name: " + account1.getAccountHolderName() + ", Balance: $" + account1.getBalance());
System.out.println("Account 2 - Name: " + account2.getAccountHolderName() + ", Balance: $" + account2.getBalance());
System.out.println("Account 3 - Name: " + account3.getAccountHolderName() + ", Balance: $" + account3.getBalance());
System.out.println("Total Accounts Created: " + BankAccount.getTotalAccounts());
Account 1 - Name: Anusha, Balance: $9500.0
Account 2 - Name: Avanthika, Balance: $2000.0
Account 3 - Name: Vibha, Balance: $3000.0
Total Accounts Created: 3