Topics Understanding and accessing instance variables Object
Solution
solution
package com.prt.test;
public class Customer {
   private String firstName;
    private String lastName;
    private int idNumber;
    private int noOfMatineeTickets;
    private int noOfNormalTickets;
    private double totalCost;
   /**
    * @param totalCost
    * the totalCost to set
    */
    public void setTotalCost(double totalCost) {
        this.totalCost = totalCost;
    }
   /**
    * @param firstName
    * the firstName to set
    */
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
   /**
    * @param lastName
    * the lastName to set
    */
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
   /**
    * @param idNumber
    * the idNumber to set
    */
    public void setIdNumber(int idNumber) {
        this.idNumber = idNumber;
    }
   /**
    * @param noOfMatineeTickets
    * the noOfMatineeTickets to set
    */
    public void setNoOfMatineeTickets(int noOfMatineeTickets) {
        this.noOfMatineeTickets = noOfMatineeTickets;
    }
   /**
    * @param noOfNormalTickets
    * the noOfNormalTickets to set
    */
    public void setNoOfNormalTickets(int noOfNormalTickets) {
        this.noOfNormalTickets = noOfNormalTickets;
    }
   public Customer() {
        this.firstName = firstName;
        this.lastName = lastName;
        this.idNumber = idNumber;
        this.noOfMatineeTickets = noOfMatineeTickets;
        this.noOfNormalTickets = noOfNormalTickets;
        this.totalCost = totalCost;
    }
   public Customer(String firstName, String lastName, int idNumber) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.idNumber = idNumber;
    }
   public Customer(String firstName, String lastName, int idNumber,
            int noOfMatineeTickets, int noOfNormalTickets) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.idNumber = idNumber;
        this.noOfMatineeTickets = noOfMatineeTickets;
        this.noOfNormalTickets = noOfNormalTickets;
    }
   /**
    * @return the firstName
    */
    public String getFirstName() {
        return firstName;
    }
   /**
    * @return the lastName
    */
    public String getLastName() {
        return lastName;
    }
   /**
    * @return the idNumber
    */
    public int getIdNumber() {
        return idNumber;
    }
   /**
    * @return the noOfMatineeTickets
    */
    public int getNoOfMatineeTickets() {
        return noOfMatineeTickets;
    }
   /**
    * @return the noOfNormalTickets
    */
    public int getNoOfNormalTickets() {
        return noOfNormalTickets;
    }
   /**
    * @return the totalCost
    */
    public double getTotalCost() {
        return totalCost;
    }
   private static int getTickets() {
        return 0;
    }
   private static int getNumCustomers() {
        return 0;
    }
   /*
    * (non-Javadoc)
    *
    * @see java.lang.Object#hashCode()
    */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result
                + ((firstName == null) ? 0 : firstName.hashCode());
        result = prime * result + idNumber;
        result = prime * result
                + ((lastName == null) ? 0 : lastName.hashCode());
        result = prime * result + noOfMatineeTickets;
        result = prime * result + noOfNormalTickets;
        return result;
    }
   /*
    * (non-Javadoc)
    *
    * @see java.lang.Object#equals(java.lang.Object)
    */
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Customer other = (Customer) obj;
        if (firstName == null) {
            if (other.firstName != null)
                return false;
        } else if (!firstName.equals(other.firstName))
            return false;
        if (idNumber != other.idNumber)
            return false;
        if (lastName == null) {
            if (other.lastName != null)
                return false;
        } else if (!lastName.equals(other.lastName))
            return false;
        return true;
    }
public void computeTotalCost() {
       int matineetickets = this.getNoOfMatineeTickets();
        int normaltickets = this.getNoOfNormalTickets();
        double totalcost = 5 * matineetickets + 7.5 * normaltickets;
        System.out.println(\"totalcost $\" + totalcost);
}
public Customer hasMore(Customer other) {
       if (this.getNoOfMatineeTickets() == other.getNoOfMatineeTickets()
                && this.getNoOfNormalTickets() == other.getNoOfNormalTickets())
            return this;
        if ((this.getNoOfMatineeTickets() + this.getNoOfNormalTickets()) > (other
                .getNoOfNormalTickets() + other.getNoOfMatineeTickets())) {
            return this;
        } else
            return other;
}
   /*
    * (non-Javadoc)
    *
    * @see java.lang.Object#toString()
    */
    @Override
    public String toString() {
        return \"firstName=\" + firstName + \"\ \" + \"lastName=\" + lastName + \"\ \"
                + \"idNumber=\" + idNumber + \"\ \" + \"noOfMatineeTickets=\"
                + noOfMatineeTickets + \"\ \" + \"noOfNormalTickets=\"
                + noOfNormalTickets;
    }
}
package com.prt.test;
import java.util.Scanner;
public class Assignment6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Customer customer1 = new Customer();
System.out.println(\".......customer\'s info.....\");
System.out.println(customer1.toString());
// call the mutator methods
       customer1.setFirstName(\"Grace\");
        customer1.setLastName(\"Hopper\");
        customer1.setNoOfNormalTickets(30);
        customer1.setIdNumber(12345);
        System.out.println(\".......customer\'s info.....\");
System.out.println(customer1);
// instantiate another customer using overloaded constructor
       Customer customer2 = new Customer(\"Morgan\", \"smith\", 555666777);
        // print custmer\'s info
        System.out.println(\".......customer\'s info.....\");
System.out.println(customer2);
       customer2.setNoOfMatineeTickets(25);
        // cusotmers information using keyboard
        System.out.println(\"enter fname\");
        String fname = scanner.next();
        System.out.println(\"enter lname\");
        String lname = scanner.next();
        System.out.println(\"enter id\");
        int id = scanner.nextInt();
        System.out.println(\"enter noofmatineetickets\");
        int matineeTickets = scanner.nextInt();
        System.out.println(\"enter noofmatineetickets\");
        int normalTickets = scanner.nextInt();
// overloaded constructor
       Customer customer3 = new Customer(fname, lname, id, matineeTickets,
                normalTickets);
// customers info using get methods
System.out.println(\".....customers info using get methods........\");
       System.out.println(\"firstname\" + customer3.getFirstName());
        System.out.println(\"lastname\" + customer3.getLastName());
        System.out.println(\"matinee tickets\"
                + customer3.getNoOfMatineeTickets());
        System.out.println(\"normaltickets\" + customer3.getNoOfNormalTickets());
        customer3.computeTotalCost();
       // who has more tickets
        System.out.println(\"who has more tickets\");
        System.out.println(customer1.hasMore(customer3));
       System.out.println(\"first comparison\");
        if (customer2.equals(customer3))
            System.out.println(\"customer2 and customer3 are same\");
        else
            System.out.println(\"customer2 and customer3 are not same\");
       System.out.println(\"second comparison\");
        customer2 = customer3;
        if (customer2.equals(customer3))
            System.out.println(\"customer2 and customer3 are same\");
        else
            System.out.println(\"customer2 and customer3 are not same\");
}
}
output
.......customer\'s info.....
 firstName=null
 lastName=null
 idNumber=0
 noOfMatineeTickets=0
 noOfNormalTickets=0
 .......customer\'s info.....
 firstName=Grace
 lastName=Hopper
 idNumber=12345
 noOfMatineeTickets=0
 noOfNormalTickets=30
 .......customer\'s info.....
 firstName=Morgan
 lastName=smith
 idNumber=555666777
 noOfMatineeTickets=0
 noOfNormalTickets=0
 enter fname
 john
 enter lname
 helen
 enter id
 12345
 enter noofmatineetickets
 25
 enter noofmatineetickets
 36
 .....customers info using get methods........
 firstnamejohn
 lastnamehelen
 matinee tickets25
 normaltickets36
 totalcost $395.0
 who has more tickets
 firstName=john
 lastName=helen
 idNumber=12345
 noOfMatineeTickets=25
 noOfNormalTickets=36
 first comparison
 customer2 and customer3 are not same
 second comparison
 customer2 and customer3 are same






