Tuesday, January 25, 2011

Object manipulation…

In this example we will see object manipulation i.e. for example Comparing two objects.

This example will demonstrate simple payroll system.

  1. Create folder with name “payroll”
  2. Create class “Employee” in payroll folder which will have logic to calculate salary for Employee.
  3. Now come out of the payroll folder. And create ObjMethTest class to test the code.

Employee.java

package payroll;

public class Employee{
private int id;
float rate;
protected int hours;
private static int count;

public Employee(int h, float r){
id = 101 + count++;
hours = h;
rate = r;
}

public Employee(){
this(0, 50);
}

public Employee(int i, int h, float r){
id = i;
hours = h;
rate = r;
}

public int getHours(){
return hours;
}

public void setHours(int value){
hours = value;
}

public float getRate(){
return rate;
}

public void setRate(float value){
rate = value;
}

public int getId(){
return id;
}

public double getNetIncome(){
double income = hours * rate;
int ot = hours - 180;
if(ot > 0)
income += 50 * ot;
return income;
}

public static int countEmployees(){
return count;
}

public int hashCode(){
return id;
}

public boolean equals(Object other){
if(other instanceof Employee){
Employee that = (Employee) other;
return (id == that.id) && (hours == that.hours) && (rate == that.rate);
}
return false;
}

public String toString(){
return id + " " + hours + " " + rate;
}

public void finalize(){
System.out.printf("Employee:%d finalized%n", id);
}
}

ObjMethTest.java

import payroll.Employee;

class ObjMethTest{
public static void main(String[] args){
Employee a = new Employee(175, 75);
Employee b = a;
Employee c = new Employee(101, 175, 75);
Employee d = new Employee();
System.out.printf("a is identical to b: %b%n", a == b);
System.out.printf("a is identical to c: %b%n", a == c);
System.out.printf("Hash-code of a: %d%n", a.hashCode());
System.out.printf("Hash-code of b: %d%n", b.hashCode());
System.out.printf("Hash-code of c: %d%n", c.hashCode());
System.out.printf("a is equal to b: %b%n", a.equals(b));
System.out.printf("a is equal to c: %b%n", a.equals(c));
System.out.printf("a: %s%n", a);
System.out.printf("b: %s%n", b);
System.out.printf("c: %s%n", c);
d = null;
System.gc();
}
}

To compile:

javac ObjMethTest.java

To run:

java ObjMethTest

No comments: