equals函数的作用
1.equals函数在什么地方?
equals在Object类当中,、
2.equals函数的作用
3.复写equals函数的方法?
4.“==”操作符的作用,判断两个引用是否指向堆内存中同一个对象的地址,如果是就返回true,否则就返回false。
class User{
private String name;
private int age;
public void User(){
System.out.println("User 的构造函数");
}
}
class Test{
public static void main(String args[]){
User u1 = new User();
User u2 = new User();
User u3 = u1;
if(u1 == u2){
System.out.println(" 两个对象堆内存相等");
}else {
System.out.println(" 两个对象堆内存不相等");
}
if(u1 == u3){
System.out.println(" 两个对象堆内存相等");
}else {
System.out.println(" 两个对象堆内存不相等");
}
}
}
5.什么是对象的内容相等
1)对象的内容相等需要符合以下两个条件:
a)两个对象的类型是否相同(可以使用instanceof操作符进行比较);
b)两个对象的成员变量的值完全相同。
6.基本类型的对象一般用“==”来比较,其它类型的对象一般用“equals”来比较。
7.equals实例
class User{
public String name;
public int age;
public void User(){
System.out.println("User 的构造函数");
}
public boolean equals(Object obj){
if(this == obj){
return true;
}
if(obj instanceof User){
User u = (User)obj;
if(this.age == u.age && this.name.equals(u.name)){
return true;
}else{
return false;
}
}else{
return false;
}
}
}
class Test{
public static void main(String args[]){
User u1 = new User();
User u2 = new User();
User u3 = new User();
u1.age = 21;
u1.name = "张三";
u2.age = 21;
u2.name = "王五";
u3.age = 21;
u3.name = "张三";
if(u1.equals(u2)){
System.out.println(" 两个对象堆内存相等");
}else {
System.out.println(" 两个对象堆内存不相等");
}
if(u1.equals(u3)){
System.out.println(" 两个对象堆内存相等");
}else {
System.out.println(" 两个对象堆内存不相等");
}
}
}