方法重写 为什么要重写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如何实现? java中怎么将域名解析为ip java中 import java.awt.* *的含义 为什么一直提示找不到Double.parseDouble?谁能帮我把它运行出来? 各位大侠:如何将一个char型转换成2个byte?? 请教:linux下运行JAR文件 请教:关于java面向对象的熟练掌握和训练! JAVA 分布式? 有谁用过Search Maker pro 2.1并知道注册码?或能提供类似的软件.[Search Maker Pro可以自动搜索一个网站,对所有页面进行索引,然后生成 请教高手 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));
}