Employee other = (Employee)otherObject;
      if (salary < other.salary) return -1;//这里other.salary是怎么获取对象other的salary值的呢?// 第一句不是强行转换么。

解决方案 »

  1.   

    但Employee没有一个名为salary的方法啊
      

  2.   

    salary不是方法。
    请看下面的定义
    private double salary;
    是other的成员变量。
      

  3.   

    哦,平时访问salary时,省略了隐含参数
    如上例中
    public double getSalary()
       {
          return salary;//其实写全了就是this.salary
       }
    你是这个意思吗?老猫:)
      

  4.   

    这就是Java的好处了,由于Java是晚期绑定的,所以这样一点问题都没有。
    JVM会帮你弄好的。
    不过你的代码不太好啊,既然将salary定义为private,又做了一个getSalary()
    访问器,为什么还要直接调用salary呢?写成
    if (this.getSalary() < other.getSalary())不是更清晰吗。要不干脆将salary
    做成public算了。
      

  5.   

    可能有它的道理吧对java的类中的方法与私有变量关系的认识又进了一步:)