import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Student[] s = new Student[3]; Scanner scn=new Scanner(System.in); String d=scn.next(); s[0] = new Student(new Name("Derek", "S", "Dexony"),d); s[1] = new Student(new Name("Stacy", "M", "Waters"),d); s[2] = new Student(new Name("Adamo", "U", "Leetmz"),d); printList(s);// System.out.println();// System.out.println("Max is " + max(s)); } public static void printList(Student[] s) { for(int i=0;i<s.length;i++) System.out.println(s[i]); } public static Object max(Student[] s) { Arrays.parallelSort(s); return s[s.length-1]; } }class Name { private String firstname; private String mi; private String lastname; public Name() { super(); // TODO 自动生成的构造函数存根 } public Name(String firstname, String mi, String lastname) { super(); this.firstname = firstname; this.mi = mi; this.lastname = lastname; } public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } public String getMi() { return mi; } public void setMi(String mi) { this.mi = mi; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } public String getFullName() { return this.firstname+" "+this.mi+" "+this.lastname; } }class Person implements Comparable{ private Name name; public Person() { super(); // TODO 自动生成的构造函数存根 } public Person(Name name) { super(); this.name = name; } public Name getName() { return name; } public void setName(Name name) { this.name = name; } public int compareTo(Object obj) { if(obj instanceof Person) { Person p=(Person) obj; if(this.name.getLastname().equals(p.name.getLastname())) if(this.name.getFirstname().equals(p.name.getFirstname())) return this.name.getMi().compareTo(p.name.getMi()); else return this.name.getFirstname().compareTo(p.name.getFirstname()); else return this.name.getLastname().compareTo(p.name.getLastname()); } return 0; } @Override public String toString() { return "Person [name=" + name + ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()=" + super.toString() + "]"; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Person other = (Person) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } }class Student extends Person { private String major; public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } public Student() { super(); // TODO 自动生成的构造函数存根 } public Student(Name name ,String major) { super(name); this.major=major; // TODO 自动生成的构造函数存根 } public Student(String major) { super(); this.major = major; } @Override public String toString() { return this.getName().getFullName(); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((major == null) ? 0 : major.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; Student other = (Student) obj; if (major == null) { if (other.major != null) return false; } else if (!major.equals(other.major)) return false; return true; } public int compareTo(Object obj) { if(obj instanceof Student) { Student stu=(Student) obj; if(this.major.equals(stu.major)) if(this.getName().getLastname().equals(stu.getName().getLastname())) if(this.getName().getFirstname().equals(stu.getName().getFirstname())) return this.getName().getMi().compareTo(stu.getName().getMi()); else return this.getName().getFirstname().compareTo(stu.getName().getFirstname()); else return this.getName().getLastname().compareTo(stu.getName().getLastname()); return this.major.compareTo(stu.major); } return 0; }}代码有点复杂,可以直接看图片。