当前位置: 代码迷 >> Java相关 >> 这段代码执行结果为何为0
  详细解决方案

这段代码执行结果为何为0

热度:128   发布时间:2008-02-06 11:15:27.0
这段代码执行结果为何为0
这是一个接口的源码,运行时遇到点奇怪的问题,如下代码,其中红色代码是啥意思,没见过这种写法,请教高手指点:
import java.util.*;

public class EmployeeSortTest {
  public static void main(String[] args) {
    Employee[] staff=new Employee[3];
    staff[0]=new Employee("man1",1000);
    staff[1]=new Employee("b",2000);
    staff[2]=new Employee("c",500);

    Arrays.sort(staff);

    for(Employee e:staff)  
  {
      System.out.println("姓名"+e.getName()+"  薪水="+e.getSalary());
    }
  }
}


class Employee
    implements Comparable {
  private String name;
  private double salary;
  public Employee(String n, double s) {
    String name = n;
    double salay = s;
  }

  public String getName() {
    return name;
  }

  public double getSalary() {
    return salary;
  }

  public void raiseSalary(double byPercent) {
    double raise = salary * byPercent / 100;
    salary += raise;
  }

  public int compareTo(Employee other) {
    if (salary < other.salary)
      return -1;
    if (salary > other.salary)
      return 1;
    return 0;
  }

  public int compareTo(Object o) {
    return 0;
  }
}

运行结果:
姓名null  薪水=0.0
姓名null  薪水=0.0
姓名null  薪水=0.0
搜索更多相关的解决方案: Employee  薪水  staff  代码  

----------------解决方案--------------------------------------------------------
for(Employee e:staff)

这也是for循环的一种,一般都是用在数组当中。相当于列遍数组把右边的数组值赋给左边的数组。直至未尾。
它节省了循环初值,条件等。

[[it] 本帖最后由 谁与争疯 于 2008-2-6 12:09 编辑 [/it]]
----------------解决方案--------------------------------------------------------
  相关解决方案