class Employee { private String name; private double salary; public Employee(String n, double s) { name = n; salary = s; } public String toString() { return name + " ($" + salary + ") "; } private static void swapEmployee(Employee e1, Employee e2) { Employee temp = e1; // Cannot really swap caller's arguments e1 = e2; e2 = temp; } private static void swapSalary(Employee e1, Employee e2) { double temp = e1.salary; // OK: Can swap the instance fields e1.salary = e2.salary; e2.salary = temp; } public static void main(String[] args) // unit test for Employee class { Employee a = new Employee("Harry", 10000); Employee b = new Employee("Helena", 20000); Employee.swapEmployee(a, b); // No change: a still refers Harry; b still refers Helena Employee.swapSalary(a, b); // Changed! salaries swapped System.out.println(a); System.out.println(b); } }