方法重写 为什么要重写equals 谁给我举个通俗的例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java本身的equals只判断两个对象是不是一个对象~比如两个对象不同,但是里边对应的属性的值都是相同的,原有的equals会返回false;此时可重写这个函数,根据属性进行判断,返回TRUE. public class test { /** * @param args */ private int num_a; private int num_b; public boolean equals(test params) { if(this.num_a==params.num_a&&this.num_b==params.num_b) { return true; } else { return false; } }}//结贴是一种动力,更是一种美德 equals默认是== ,比较引用,而不是实值。若要比较实值,就需重写 实现equals你想要的功能,你就可以重写equals呀.public int equals(int a){ int b = 2; if(a == b) { return 0; }else if(a > b) { return 1; }else if(a < b) { return -1; }else { return -2; } } 因为Java中每个类都会直接或间接的继承Object类,在类中存在一个equals方法,但这个方法比较的是两个引用所指向的是否是同一个对象实例,也就是所谓的地址比较,但我们通常比较的是两个值,而不是地址,所以这个时候就必须要覆盖Object类的equals()方法了! 假如你要通过Student的id来判断两个学生是否是同一个学生:public boolean equals(Object obj){ if(!(obj instanceof Student)) return false; Student s=(Student)obj; return (id==s.id&&name.equals(s.name)); } 母牛生小牛的问题 如何在java应用程序中加入循环播放的声音 执行Tomcat的start.bat命令时,提示:'JAVA_OPTS'不是内部命令,也不是可运行的程序 JCreator使用问题 怎么样把一个自定义的类型的数据写入一个文件再按照这个类型读 java Swing设计界面有什么设计模式么? integer.parseInt的疑惑 JFileChooser中的c: d: e: 等盘符是通过什么显示出来的,是怎么得到机器的所有盘符呀? 关于Properties加载.properties文件的路径问题 字符串中有汉字,怎么查找和替换??? 请教高手 java 多少年才算是资深
比如两个对象不同,但是里边对应的属性的值都是相同的,原有的equals会返回false;此时可重写这个函数,根据属性进行判断,返回TRUE.
* @param args
*/
private int num_a;
private int num_b;
public boolean equals(test params)
{
if(this.num_a==params.num_a&&this.num_b==params.num_b)
{
return true;
}
else
{
return false;
}
}
}
//结贴是一种动力,更是一种美德
int b = 2;
if(a == b)
{
return 0;
}else if(a > b)
{
return 1;
}else if(a < b)
{
return -1;
}else {
return -2;
}
}
public boolean equals(Object obj){
if(!(obj instanceof Student)) return false;
Student s=(Student)obj;
return (id==s.id&&name.equals(s.name));
}