Java重写toString()和compareTo方法
描述
方法重写,也叫做方法覆盖。 概念:在程序中,子类可以继承父类中的方法,而不需要重新编写相同的方法,但有时子类想对父类的方法做一定的修改,即为子类重写父类的方法。 要求:两个方法同名,返回类型一致,参数类型相同。 权限:子类>=父类(private<默认修饰符<protected<public)。 注意:父类的私有(private)方法、静态方法、构造方法都不能被重写。 另外:方法重写时最好在方法的前面加上@Override,除了方便阅读外,编译器可以帮助你检查方法的正确性。 |
难度
一般 |
输入示例
005 oyou 9500 |
输出示例
001,zhang,5000.0 003,zhao,6000.0 004,song,6500.0 002,li,8000.0 005,oyou,9500.0 |
完成代码
import java.util.Arrays; import java.util.Scanner; public class Demo { public static void main(String[] args) { String id; String name; double salary; Employee[] es = new Employee[5]; es[0] = new Employee("001", "zhang", 5000); es[1] = new Employee("002", "li", 8000); es[2] = new Employee("003", "zhao", 6000); es[3] = new Employee("004", "song", 6500); Scanner scn = new Scanner(System.in); id = scn.next(); name = scn.next(); salary = scn.nextDouble(); es[4] = new Employee(id, name, salary); Arrays.sort(es); for (Employee e : es) { System.out.println(e); } } } class Employee implements Comparable<Employee>{ private String id; private String name; private double salary; public Employee(String id, String name, double salary) { this.id=id; this.name=name; this.salary=salary; } @Override public String toString(){ return id+","+this.name+","+this.salary; }
//按薪水有少到多排序 @Override public int compareTo(Employee e){ if(this.salary>e.salary){ return 1; }else if(this.salary<e.salary){ return -1; }else{ if(this.salary>e.salary){ return -1; }else if(this.salary<e.salary){ return 1; }else{ return 0; } } } }