首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

有关组合(composition)的有关问题,请求好心人回答

2012-03-28 
有关组合(composition)的问题,请求好心人回答?classCommissionEmployee{protectedStringfirstNamepublicC

有关组合(composition)的问题,请求好心人回答?
class   CommissionEmployee
{
      protected   String   firstName;
      public   CommissionEmployee(   String   first   )
      {
            firstName   =   first;

      }  
      public   void   setFirstName(   String   first   )
      {
            firstName   =   first;
      }  
      public   String   getFirstName()
      {
            return   firstName;
      }  
      }  

public   class   BasePlusCommissionEmployee  
{
      private   double   baseSalary;  
      private   CommissionEmployee   ce;
      public   BasePlusCommissionEmployee(   String   firstdouble   salary   )
      {
            ce   =   new   CommissionEmployee(   "Bob);
            setBaseSalary(   salary   );  
      }  
     
      public   void   setBaseSalary(   double   salary   )
      {
            baseSalary   =   (   salary   <   0.0   )   ?   0.0   :   salary;
      }  
      public   double   getBaseSalary()
      {
            return   baseSalary;
      }  
}  

class   BasePlusCommissionEmployeeTest  
{
      public   static   void   main(   String   args[]   )  
      {
            BasePlusCommissionEmployee   basePlusCommissionEmployee   =  
                  new   BasePlusCommissionEmployee(  
                  "Bob ",   300   );
            System.out.printf(   "%s   %s\n ",   "First   name   is ",
                  ce.getFirstName()   );
                    System.out.printf(   "%s   %.2f\n ",   "Base   salary   is ",
                  basePlusCommissionEmployee.getBaseSalary()   );
                  }  
}  
这个程序编译时发现错误如下:说不能找到变量ce,怎么回事啊。???

[解决办法]
ce是 BasePlusCommissionEmployee 类的私有变量,在类BasePlusCommissionEmployeeTest 中当然无法访问,建议你修改如下

class CommissionEmployee {
protected String firstName;

public CommissionEmployee(String first) {
firstName = first;

}

public void setFirstName(String first) {
firstName = first;
}


public String getFirstName() {
return firstName;
}
}

class BasePlusCommissionEmployee {
private double baseSalary;

private CommissionEmployee ce;

public BasePlusCommissionEmployee(String first, double salary) {
ce = new CommissionEmployee( "Bob ");
setBaseSalary(salary);
}

public void setBaseSalary(double salary) {
baseSalary = (salary < 0.0) ? 0.0 : salary;
}

public double getBaseSalary() {
return baseSalary;
}

public String getFirstName() {
return ce.getFirstName();
}
}

public class BasePlusCommissionEmployeeTest {
public static void main(String args[]) {
BasePlusCommissionEmployee basePlusCommissionEmployee = new BasePlusCommissionEmployee(
"Bob ", 300);
System.out.printf( "%s %s\n ", "First name is ",
basePlusCommissionEmployee.getFirstName());
System.out.printf( "%s %.2f\n ", "Base salary is ",
basePlusCommissionEmployee.getBaseSalary());
}
}

[解决办法]
private外部函数不能调用的

热点排行