Skip to main content

Java Objects - Basics!!!!

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

Popular posts from this blog

How to create JRadioButtons, JComboBoxes and JtextAreas

Today I feel much better... These past few days I have been exploring the distance teaching/learning possibilities... Virtual Class did not work, through our computer lab firewall (unfortunately) but today I created two screen recording with sound to try and show you how you can use other swing components like: Radio Button, Printable text Areas and comboboxes. Try to watch the 2 parts of my video (its less than 15 mins) Part 1 Part 2 If you have any questions please comment...

GUI Components

This presentation describes JAVA swing GUI components and Layout Managers Powerpoint presentation in movie mode....

Introduction to JAVA - Review Questions

Very Basic Questions: 1) JAVA uses classes and objects .   Define classes and objects? What is their relationship? 2) Which of the following are Java reserved words?       run,  import,  default,  implement, main, int, Char, exit, extends, catch, if, for, when, do-while, While Basic Questions: Which statements are true? The default constructor initialises method variables. The default constructor has the same access as its class. The default constructor invokes the no-arg constructor of the superclass. If a class lacks a no-arg constructor, the compiler always creates a default constructor. The compiler creates a default constructor only when there are no other constructors for the class. Programming Problems: 1) Create a method called hasDoubleLetters() that returns true if a given word has at least 2 same letters  and false if not. Try to answer them and I will give you feedback! ... more to follow if ...