コード例 #1
0
  public static void main(String[] args) {
    // instantiate BasePlusCommissionEmployee object
    BasePlusCommissionEmployee employee =
        new BasePlusCommissionEmployee("Bob", "Lewis", "333-33-3333", 5000, .04, 300);

    // get base-salaried commission employee data
    System.out.println("Employee information obtained by get methods:%n");
    System.out.printf("%s %s%n", "First name is", employee.getFirstName());
    System.out.printf("%s %s%n", "Last name is", employee.getLastName());
    System.out.printf("%s %s%n", "Social security number is", employee.getSocialSecurityNumber());
    System.out.printf("%s %.2f%n", "Gross sales is", employee.getGrossSales());
    System.out.printf("%s %.2f%n", "Commission rate is", employee.getCommissionRate());
    System.out.printf("%s %.2f%n", "Base salary is", employee.getBaseSalary());

    employee.setBaseSalary(1000);

    System.out.printf(
        "%n%s:%n%n%s%n", "Updated employee information obtained by toString", employee.toString());
  } // end main
コード例 #2
0
  public static void main(String[] args) {
    // create subclass objects
    SalariedEmployee salariedEmployee =
        new SalariedEmployee("John", "Smith", "111-11-1111", new BirthDate(1, 1, 2000), 800.00);
    HourlyEmployee hourlyEmployee =
        new HourlyEmployee("Karen", "Price", "222-22-2222", new BirthDate(24, 12, 1989), 16.75, 40);
    CommissionEmployee commissionEmployee =
        new CommissionEmployee(
            "Sue", "Jones", "333-33-3333", new BirthDate(4, 4, 1880), 10000, .06);
    BasePlusCommissionEmployee basePlusCommissionEmployee =
        new BasePlusCommissionEmployee(
            "Bob", "Lewis", "444-44-4444", new BirthDate(12, 11, 2070), 5000, .04, 300);
    PieceWorker pieceWorker =
        new PieceWorker("K", "P", "555-55-5555", new BirthDate(2, 2, 1999), 100, 3);

    System.out.println("Employees processed individually:");

    System.out.printf(
        "%n%s%n%s: $%,.2f%n%n", salariedEmployee, "earned", salariedEmployee.earnings());
    System.out.printf("%s%n%s: $%,.2f%n%n", hourlyEmployee, "earned", hourlyEmployee.earnings());
    System.out.printf(
        "%s%n%s: $%,.2f%n%n", commissionEmployee, "earned", commissionEmployee.earnings());
    System.out.printf(
        "%s%n%s: $%,.2f%n%n",
        basePlusCommissionEmployee, "earned", basePlusCommissionEmployee.earnings());
    System.out.printf("%s%n%s: $%,.2f%n%n", pieceWorker, "earned", pieceWorker.earnings());

    // create four-element Employee array
    Employee[] employees = new Employee[5];

    // initialize array with Employees
    employees[0] = salariedEmployee;
    employees[1] = hourlyEmployee;
    employees[2] = commissionEmployee;
    employees[3] = basePlusCommissionEmployee;
    employees[4] = pieceWorker;

    System.out.printf("Employees processed polymorphically:%n%n");

    // generically process each element in array employees
    for (Employee currentEmployee : employees) {
      System.out.println(currentEmployee); // invokes toString

      // determine whether element is a BasePlusCommissionEmployee
      if (currentEmployee instanceof BasePlusCommissionEmployee) {
        // downcast Employee reference to
        // BasePlusCommissionEmployee reference
        BasePlusCommissionEmployee employee = (BasePlusCommissionEmployee) currentEmployee;

        employee.setBaseSalary(1.10 * employee.getBaseSalary());

        System.out.printf(
            "new base salary with 10%% increase is: $%,.2f%n", employee.getBaseSalary());
      }

      System.out.printf("earned $%,.2f%n%n", currentEmployee.earnings());
    }

    // get type name of each object in employees array
    for (int j = 0; j < employees.length; j++)
      System.out.printf("Employee %d is a %s%n", j, employees[j].getClass().getName());
  } // end main