java中Object类中的equals方法?

public class Obj {

public static void main(String[] args) {

Demo demo1 = new Demo(5);
Demo demo2 = new Demo(6);
System.out.println(demo1.equals(demo2));
}

}

class Demo {

private int num;

public Demo(int num) {
this.num = num;
}

public boolean equals(Object object) {
if (!(object instanceof Demo))
return false;
Demo demo = (Demo) object;
return this.num == demo.num;
}
}
讲解一下Demo中的值5,6在整个程序中的流程,不太明白class Demo类的作用?

这个只是在 demo类的构造函数中给num初始化不同的数据而已,demo1对象中的num变量值为5,你用demo1调用equals方法,这时候 this.num=5的,new demo2对象全局变量num为6传进来的demo2.num=6 对比之后肯定返回的false
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-09-24
main中的前两行跟equals没关系,当你调用equals的时候,会先调用hashcode方法,这个方法也是Object的,如果该方法返回的结果相等,再去调用equals,你都没有重写这个方法
第2个回答  2014-09-24
class Demo 重写了 Object类的equals方法,通过传入对象的num属性比较判断2个对象是否相同追问

我就是想问num是怎么一步步传入对象的

追答

Demo demo1 = new Demo(5);
Demo demo2 = new Demo(6); 在你创建这个对象的时候不是给了吗?这里用到了对象转型,所有的类都继承自Object,当你调用equals(Object object)这个方法的时候,编译期它是Object类型,而在运行期确实Demo类型

java中equals和==的区别
equals()方法是Java.lang.Object类的一部分,它是用于比较对象的内容是否相等的方法。当我们使用equals()方法比较两个对象时,它比较的是这两个对象的值,即它们的状态或属性。例如,如果我们有两个String对象,它们包含相同的字符,那么使用equals()方法比较它们将返回true,即使它们在内存中的位置(即引...

2020-09-10:java里Object类有哪些方法?
Java Object类是所有类的父类,主要方法有:getClass():获取运行时类型,返回值为Class对象 2.hashCode():返回该对象的哈希码值,是为了提高哈希表的性能(HashTable)3.equals():判断两个对象是否相等,在Object源码中equals就是使用==去判断,所以在Object中equals是等价于==的,但是在String及...

java中equals使用方法
1. 基本用法与意义:在Java中,equals方法是Object类的一个方法。默认情况下,这个方法比较的是对象的引用,即判断两个对象是否指向同一内存地址。因此,对于不同的对象实例,即使它们的内容完全相同,使用默认的equals方法也会返回false。2. 在特定类中的使用:但是,许多Java类已经重写了equals方法,让它...

java equals和==的区别
对于Object类来说 , equals和== 是一样的 , 可以看一下Object类的 equals方法:此时的equals 和 == 比较的都是 对象的内存地址 , 如果是基本数据类型 , 比较的是值 java中 , 所有类都是Object的子类 , 对于一些JDK提供的基础类 , 很多都复写了Object的 equals方法 , 比如String , 复写之后...

关于java中equals方法的疑惑
equals 方法是 java.lang.Object 类的方法。有两种用法说明:(1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。“==”比较两个变量本身的值,即两个对象在内存中的首地址。“equals()”比较字符串中所包含的内容是否相同。比如:String s1,s2,s3 = "abc",...

JAVA中字符串比较equals和equalsIgnoreCase的区别
equals对象参数是Object 用于比较两个对象是否相等 equals在Object类中方法默然比较对象内存地址,所有我们应该重写这个方法 equals在把对象放入HashMap中会被掉用 equalsIgnoreCase是String特有的方法 equalsIgnoreCase方法的参数是String对象 equalsIgnoreCase 方法是比较两个String对象是否相等(并且忽略大小写)...

Java编程:Object类常见方法讲解
Object是Java语言中所有类的根本基类,所有类都直接或间接继承自Object类,因此可以使用Object类中的方法。Object类中常见方法如下:1. equals(Object obj) 方法 比较两个对象是否相等,地址相同返回true,值相等也返回true。例如:2. hashCode() 方法 返回对象的哈希码,用于比较对象相等性,常与equals...

java中object是什么意思?
Java中的Object是所有类的超类,也就是说所有类都直接或间接继承自Object类。因此,Object类拥有所有类都具备的基本特征和方法,如equals()方法、hashCode()方法等。Object类的equals()方法用于判断两个对象是否相等,如果要使用equals()方法正确地比较两个对象的相等性,开发者必须重写equals()方法。此时,...

string类重写equal方法了吗
回是,Java中的String类重写了equals方法。在Java中,每一个对象都继承自Object类,Object类中提供了一个默认的equals方法。这个默认方法使用“==”比较两个对象的引用,也就是说,当且仅当两个引用指向同一个对象时,返回true。然而,对于许多类来说,这种比较方式并不合适。例如,对于String类,我们更...

java.lang.object方法使用说明
在Java中,equals()方法是一个关键的工具,用于比较两个对象的相似性。它位于Object类中,原始实现是通过检查两个对象是否指向同一内存位置。然而,这种简单的比较可能并不总是满足需求,因为即使内容相同的对象,由于内存分配的差异,也可能被视为不等。因此,如果你想要更深入地比较两个对象,通常需要在...

相似回答