Object类的中的 toString + equals 用法
Posted 嘻嘻硕
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object类的中的 toString + equals 用法相关的知识,希望对你有一定的参考价值。
Object类
如果一个类没有指定的父类, 那么则会默认继承
Object类
public class Student /* extends Object */ {
// ...
}
学习目标
- toString
- equals
toString
toString方法其实就是返回该对象字符串表示。关键点来了哈
toString = 对象类型 + "@" + 地址hashCode(哈希数值)
toString 由于是返回的结果是地址,开发中每个对象属性不同,所以我们一般需要重写它。
覆盖重写
不希望使用toString方法得到默认行为,可以覆盖重写它
类
pubilc class Person{
@Override
public String toString(){
return "嘻嘻硕" + "❤" + Integer.toHexString(hashCode());
}
}
实现类
public class Demo03 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.toString());
}
}
输出结果:
曹在硕❤36d64342
equals
equals:指示某个对象是否与 比较对象"相等"。
== 比较两个变量本身的值,即两个对象在内存中的首地址。
== 是默认地址比较 / equals 是对象内容比较
public class Demo02 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2); // true 因为地址是一样的
String s3,s4,s5 = "abc";
s3 = new String("abc");
s4 = new String("abc");
System.out.println(s3 == s4); // false 地址不同 new会开辟一个新的地址
System.out.println(s3.equals(s4)); // true 结果一致 所以为true
}
}
加深影响
String s1,s2,s3 = "abc" , s4 = "abc";
s1 = new String("abc");
s2 = new String("abc");
// ==
System.out.println("s1 == s2: " + (s1 == s2));
System.out.println("s1 == s3: " + (s1 == s3));
System.out.println("s3 == s4: " + (s3 == s4));
// equals()
System.out.println("s1.equals(s2)" + s1.equals(s2));
System.out.println("s1.equals(s3)" + s1.equals(s3));
System.out.println("s3.equals(s4)" + s3.equals(s4));
输出结果为:
s1 == s2: false
s1 == s3: false
s3 == s4: true
s1.equals(s2) : true
s1.equals(s3) : true
s3.equals(s4) : true
总结 :
== 是 比较地址
equals 是 比较对象
多花点时间就可以学会~
以上是关于Object类的中的 toString + equals 用法的主要内容,如果未能解决你的问题,请参考以下文章