关于java.lang里的一个问题 需要回看类图 Orz
做一道题目的时候有个几个方法不知道编写?请高手看过题目后再看看我写的指导下Orz 问题有点长请见谅啊
题目: (The person and student class)creat the class as shown in figure ***(即待会我打的类图)
Implement the compareTo method in the Person class to compare persons in the compareTo methed to compare students in alphabetical order of their major of their major,last name,first name,and middle initial.
write a test program with the following three metheds
/**Sort an arry of comparable objects */
public static void sort(Object[] list)
/** Return the max object in an array of comparable objects*/
public static Object max(Object[] list)
main method: Test the sort and max methed using an array of four students, an array of four Strings, an array of one houndred random rationals, and array of one houndred random integers.
类图:
Person ....△java.lang.Comparable
_____________
-name:Name
_____________
+Person (name:Name)
+getName():Name
+setName(name:Name):void
+toString():String
+equals(object:Object):boolean
+comparTo(object:Object):int
Name -----◆Person
____________________
-firstName:String
-mi:char
-lastName:String
____________________
+Name(firstName:String,mi:char,lastName:String)
+getFirstName():String
+setFirstName(firstName:String):void
+getMi():char
+setMi(mi:char):void
+getLastName():String
+setLastName(lastName:String):void
+getFullName():String
Student -------(實綫)△Person
_______________
-major:String
_______________
+student(name:Name,major:String)
+getMajor():String
+setMajor(major:String):void
+toString():String
+compareTo(object:Objext):int
以下是我编写的
public class Name {
private String firstName;
private char mi;
private String lastName;
public Name() {
}
public String getFirstName(){
return firstName;
}
public void setFirstName(String firstName){
this.firstName = firstName;
}
public char getMi(){
return mi;
}
public void setMi(char mi){
this.mi = mi;
}
public String getLastName(){
return lastName;
}
public void setLastName(String lastName){
this.lastName = lastName;
}
public String getFullName(){
return firstName+ " "+mi+ " "+lastName;
}
}
_______________________________________________
public class Person implements Comparable{
private Name name;
public Person(){
}
public Person(Name name){
this.name = name;
}
public Name getName(){
return name;
}
public void setName(){
this.name = name;
}
public String toString(){
return "\n "+name.getFullName();
}
/*下面这2个方法不知道该怎么写...*/
public int compareTo(Object object){
return ;
}
public boolean equals(Object object){
return ;
}
}
________________________________________________
public class Student extends Person{
private String major;
public Student(String name, String major){
}
public String getMajor(){
return major;
}
public void setMajor(String major){
}
/*同上面以下这个也不会*/
public int compareTo(Object object){
return ;
}
public String toString(){
return super.toString() +
"\nMajor: " + major;
}
}
请高手解答下吧
[解决办法]
没看仔细,呵呵,
Person类不要要考虑major,直接比较name,然后Student的compareTo直接比较major并调用父类Person的compareTo方法比较name
equals看你怎么定义两个实例是相等的
比如class A{int i;}如果i相等就让A的实例equals的话,equals就直接return i==((A)obj).i