The first example declares class CommissionEmployee, which directly inherits from class Object and declares as private instance variables a first name, last name, social security number, commission rate and gross(i.e., total) sales amount.
Creating and Using a CommissionEmployee Class
//CommissionEmployee.java // CommissionEmployee class represents a commission employee. public class CommissionEmployee extends Object { private String firstName; private String lastName; private String socialSecurityNumber; private double grossSales; // gross weekly sales private double commissionRate; // commission percentage // five-argument constructor public CommissionEmployee( String first, String last, String ssn, double sales, double rate ) { // implicit call to Object constructor occurs here firstName = first; lastName = last; socialSecurityNumber = ssn; setGrossSales( sales ); // validate and store gross sales setCommissionRate( rate ); // validate and store commission rate } // end five-argument CommissionEmployee constructor // set first name public void setFirstName( String first ) { firstName = first; } // end method setFirstName // return first name public String getFirstName() { return firstName; } // end method getFirstName // set last name public void setLastName( String last ) { lastName = last; } // end method setLastName // return last name public String getLastName() { return lastName; } // end method getLastName // set social security number public void setSocialSecurityNumber( String ssn ) { socialSecurityNumber = ssn; // should validate } // end method setSocialSecurityNumber // return social security number public String getSocialSecurityNumber() { return socialSecurityNumber; } // end method getSocialSecurityNumber // set commission employee's gross sales amount public void setGrossSales( double sales ) { grossSales = ( sales < 0.0 ) ? 0.0 : sales; } // end method setGrossSales // return commission employee's gross sales amount public double getGrossSales() { return grossSales; } // end method getGrossSales // set commission employee's rate public void setCommissionRate( double rate ) { commissionRate = ( rate > 0.0 && rate < 1.0 ) ? rate : 0.0; } // end method setCommissionRate // return commission employee's rate public double getCommissionRate() { return commissionRate; } // end method getCommissionRate // calculate commission employee's pay public double earnings() { return commissionRate * grossSales; } // end method earnings // return String representation of CommissionEmployee object public String toString() { return String.format( "%s: %s %s\n%s: %s\n%s: %.2f\n%s: %.2f", "commission employee", firstName, lastName, "social security number", socialSecurityNumber, "gross sales", grossSales, "commission rate", commissionRate ); } // end method toString } // end class CommissionEmployee
CommissionEmployee extends (inherits from) class Object (from package java.lang).Java programmers use inheritance to create classes from existing classes. In fact every class in java (except Object) extends an existing class. The public services of class CommissionEmployee include a constructor and methods earnings. Class CommissionEmployee declares each of its instance variables as private, so objects of other classes cannot directly access these variables. Declaring instance variables as private and providing get and set methods to manipulate and validate the instance variables helps enforce good sofware enginerring. CommissionEmployeeTest class tests class CommissionEmployee class.
//CommissionEmployeeTest.java // Testing class CommissionEmployee. public class CommissionEmployeeTest { public static void main( String args[] ) { // instantiate CommissionEmployee object CommissionEmployee employee = new CommissionEmployee( "Sue", "Jones", "222-22-2222", 10000, .06 ); // get 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() ); employee.setGrossSales( 500 ); // set gross sales employee.setCommissionRate( .1 ); // set commission rate System.out.printf( "\n%s:\n\n%s\n", "Updated employee information obtained by toString", employee ); } // end main } // end class CommissionEmployeeTestCommissionEmployee class test program is above.
CommissionEmployee class test Program |
Hiç yorum yok:
Yorum Gönder