How to create and "use" an object in Java
In the following tutorial, I will explain how to create an Object in JAVA, and how you can "use" this object from a "tester" program...The object described is a cashRegistrer System in a Supermarket. Multiple instances of cashRegisters exist, each one of them has its own balance (money inside the machine). This is an instance variable.
The only operation the machines perform is to put money inside (and increase the balance).
This operation is called payAmount and needs two inputs :
1) the amount of money the customer needs to pay, for example: 5.75 (amountPayable)
2) the amount of money that the customer gives to the cashier, for example: 10 (amountGiven)
the same operation returns a value, which is the change that the cashier should give to the customer.
if the amount of money the customer gives to the cashier (amountGiven) is less than the required amount (amountPayable) the operation should return a negative number that represents how much more money the customer should pay.
A "global" static variable should keep tract of the money inside ALL instances of cashRegisters (totalBalance). This is called a class variable.
_________________________________________________________________________________
After the object is created a TesterProgram will instantiate 3 cashRegisters: A, B and C.
We will use the following scenario for our tester:
A: starts with 100 euros in the register.
B: starts with 250 euros in the register.
C: starts with 0 euros in the register.
- Someone has to pay in cashRegister A the amount 7,86 and gives a 20 euro bill. Print the change the cashier should give.
- Someone has to pay in cashRegister B the amount 22 and gives a 50 euro bill. Print the change the cashier should give.
- Someone has to pay in cashRegister C the amount 18 and gives a 20 euro bill. Print the change the cashier should give... (be careful, the object code needs modification... the case that the register does not have change is not covered)
At the end display the balance of each cash register and the totalBalance of all cashRegisters.
The full program source follows:
Enjoy!!!!
public class cashRegister {
private double balance; /*this attribute is an instance variable, so each and every cashRegister will have its own balance */
private static double totalBalance=0; /* this attribute belongs to the cashRegister class, shared among cashRegister instances */
/* A constructor method executes every time an object is instantiated.. look at the following line of the UseCashRegisters program :
cashRegister A = new cashRegister(100); --> the single parameter constructor is called
or
cashRegister C = new cashRegister(); --> the no-args constructor is called */
//no-args constructor
public cashRegister () {
balance=0;
}
//constructor with parameters
public cashRegister (double InitialMoney) {
balance = InitialMoney;
totalBalance += balance;
}
public double getBalance() {
return balance;
}
public static double getTotalBalance() {
return totalBalance;
}
public double payAmount (double amountPayable, double amountGiven) {
if (amountGiven < amountPayable) {
return amountPayable - amountGiven;
}
else {
balance += amountPayable;
totalBalance += amountPayable;
return amountGiven - amountPayable;
}
}
}
***************************************************************
public class UseCashRegisters {
public static void main(String[] args) {
cashRegister A = new cashRegister(100);
cashRegister B = new cashRegister(250);
System.out.println(A.getBalance());
System.out.println(B.getBalance());
System.out.println("Change: " + A.payAmount(7.86, 20));
System.out.println("Change: " + B.payAmount(22, 50));
System.out.println(cashRegister.getTotalBalance());
}
}
Comments
Post a Comment