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 CommissionEmployeeCommissionEmployee 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