java问题:equals方法有什么用处啊,里面的代码看不懂啊,之前都没看到过,求大神解释一下。例

java问题:equals方法有什么用处啊,里面的代码看不懂啊,之前都没看到过,求大神解释一下。例如下图中if里的this指什么,且return除了返回变量还能返回些什么,如下图的return返回的是什么意思?

== 比较的是地址。你看这个object中的equals实现就是比较的地址,你可以在类中重写equals方法,以达到你自定义比较的目的。而String类中是重写了equals的,所以你String调用equals就是比较的值。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-20
当中的 this 狭义的讲 就是指该方法 所存在的 类 所创建的对象,return 可以返回变量 可以返回 基本数据类 可以返回对象,所有可以被当做返回值的 类型 都可进行返回,这里的 return 返回的 是 两个对象比较的结果(也就是判断两个对象是不是 一样),如还有问题请追问。追问

this可以指向一个类吗?

追答

是指类的实例化对象。

是指类的实例化对象。

追问

那这个对象是在声明this时创建的还是之前已经创建的呢

第2个回答  2015-10-20
this的话可能是你这个类里面声明的变量吧,这个equals方法的返回类型是boolean类型的,
所以返回值return 要返回true或者false ,(this == obj)this 如果和 obj 内容相同的话 就会返回true,否则返回false。
第3个回答  2015-10-20
用来比较对象的,this指的是当前对象,比如,a.equals(b),那么a就是this,追问

这个obj也是对象吧?

追答

是对象,Object obj,一切皆对象,Object是所有类的基类

追问

这是被修改equals方法里的内容,程序第五行的string是什么意思,是不是什么string类,可是我之前都没看到过这个类,这个类到底有什么用,干什么的?
请大神帮忙细讲一下这里面代码的作用及相关的知识。小弟现在在学继承,可是好多这儿出现的陌生的知识书上都没解释,需要记住这些吗?

追答

String是字符串类型的类
这个方法主要是用来判断两个字符串是否相等
原来这个anObject是Object类型的,
anObject instanceof String 这个是判断anObject是不是String类型的类
如果是,将anObject强制转换为String类型即String anotherString=(String)anObject;
然后取得Object类型下,对象的长度,即int n=count;
和强制转换为String类型,字符串的长度 , 即anotherString.value
然后判断2个长度是否相等
如果相等,取得Object类型的char类型数组,即char v1[]=value;
取得String类型的char类型数组,即char v2[]=anotherString.value;
定义一个i,还有一个j
循环取得v1数组中的数据,一个字符一个字符的取
同理取得v2数据中的数据,
判断每一个字符是否相等
如果不等,return false,说明,两个字符串不相等
反正return true 两个字符串相等

第4个回答  2015-10-20
字符串比较用equals,数字比较用==追问

上图的this指什么

字符串包括对象吗

追答

this写在哪个类里,那这个类就是this,说白了写不写都一样,我看不到图片,公司网给拦截了

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

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

JAVA中equals的定义,用法,方法重写是怎么回事
这个函数的用法是:比较[调用这个方法的对象]和[方法传递进去的参数对象]是否相等。重写这个方法,意思是让你定义两个对象如何才算是相等。这样给了你极大的灵活性。因为比较两个对象是否相等是由你来定义的。这样你定义的新对象的比较也可以由你来定义。举个例子:假设1:现在你有一个clothes(衣服)类...

java中字符串比较equals和equalsignorecase的区别
1. equals方法解释:在Java中,字符串的equals方法是根据字符的编码来比较两个字符串是否相等。它是区分大小写的,意味着相同字母的大写和小写被视为不同的字符。这在需要严格区分文本大小写的场景下非常有用。2. equalsIgnoreCase方法解释:与equals方法不同,equalsIgnoreCase方法在比较字符串时忽略大小写差...

java中equals和==有什么区别,判断变量是否为空时null放在前和放在后有...
equals 只是比较值是否相同 而==则是比较两个变量 是不是同一个变量,也应时是说 要看看这两个变量是不是引用的同一个地址,java 中只有引用地址相同的两个变量才被视为== 如果明白值传递与地址传递的话,这个问题应该不难理解 null放在前面就是为了避免变量为空时 引了空指针异常 如: if(a==...

关于java中的collection中的equals()方法求帮助解释一下
就可以添加到集合了),但是由于自定义的类型是复合类型,所有的属性的值合在一起生成的哈希码可能一样(所以如果一样的话再通过用户在类里面覆盖的equals方法来比较),通过,线比较hashcode,再比较equals的方式最终即高效又准确的可以判断集合里装的对象是否重复了。

Objects.equals的踩坑预防
从理论可以看出,如果将代码修改为这样,也不会抛出空指针异常:新定义了一个方法:执行后发现没有抛出空指针异常。因此,Objects.equals方法用于比较两个对象是否相等时,确实是一个不错的方法。但存在陷阱,继续往下看。5. Objects.equals的坑 这里可能让部分开发者感到困惑,问题究竟在哪里?直接上例子...

求大神 帮解释java程序 在线等 !!!~~急!!
其实很好理解呀 你的程序里面重写了equals方法:颜色相同,成熟类型相同 则返回true;那么:1>a和b的颜色都是红色,而且都成熟了(true),所以 a.equals(b)当然就返回true了;2>符号‘==’比较的是地址,a和b虽然都是同一个实体的,但是他们都是通过不同的new出来的,也就是说a和b都分配了...

编写java时,有equals判断的代码不会执行,检查没有错误。请大家帮忙...
语法是 字符串1.equals(字符串2);是不是少了一个点啊??? 字符串1“这粒有个点”equals(字符串2);

equals()和==到底有什么区别啊?
"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。2、定义不同 "equals"在JAVA中是一个方法。"=="在JAVA中只是一个运算符合。例子:Student student1 = new Student();Student student2 = new Student();System.out.println(student1.equals(student2));System.out.println(student1 ...

相似回答