刚学JAVA,有段代码,我理解不了,我想请朋友们帮我解释一下.

来源:百度知道 编辑:UC知道 时间:2024/05/23 15:54:41
package com.mwq;

public class Person implements Comparable {

private String name;

private long id_card;

public int compareTo(Object o) {// 实现Comparator接口的方法
Person p = (Person) o;
String s1 = CnToSpell.getFullSpell(this.name);// 获得汉字的全拼
String s2 = CnToSpell.getFullSpell(p.getName());// 获得汉字的全拼
return s1.compareTo(s2);// 比较两个字符串的大小
}

public long getId_card() {
return id_card;
}

public void setId_card(long id_card) {
this.id_card = id_card;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}

5至9行我不理解?谢了朋友们!!

public int compareTo(Object o) {// 实现Comparator接口的方法
Person p = (Person) o; //类型转换,将传入参数Object类型的o转换成Person类型
String s1 = CnToSpell.getFullSpell(this.name);// 获得汉字的全拼
String s2 = CnToSpell.getFullSpell(p.getName());// 获得汉字的全拼
return s1.compareTo(s2);// 比较两个字符串的大小

这里要注意,我看着如果你要实现Comparable接口,必须还实现HashCode()和equals(Object o)方法,重写这两个方法以适应当前自己的需要。

compareTo是写的个接口
public class Person implements Comparable
Person 实现了Comparable 接口就必须实现接口中的方法
public int compareTo(Object o)
public int compareTo(Object o) {// 实现Comparator接口的方法
Person p = (Person) o;
String s1 = CnToSpell.getFullSpell(this.name);
CnToSpell是自己写的类,你应该也发出来
这个类的方法getFullSpell("name")
就是得到name字符串的汉字全拼
String s2 = CnToSpell.getFullSpell(p.getName());
// 获得汉字的全拼
return s1.compareTo(s2);// 比较两个字符串的大小
compareTo()这个是字符串的放法比较两个字符串(按字典顺序,你可以参考帮助文档)