欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Java学习笔记13(equals()方法;toString()方法)

发布时间:2025/6/17 java 70 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java学习笔记13(equals()方法;toString()方法) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

equals()方法;

  equals方法是Object类中的方法;Object是所有类的祖宗,所以所有类都有equals()方法;

  boolean equals(Object obj);

  equals方法是比较两个对象是否相等;对象为引用数据类型,比较的是内存地址;

public class Person {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}} public class Test1 {public static void main(String[] args) {Person p1=new Person();p1.setName("张三");System.out.println(p1);//p1内存地址Person p2=new Person();
     p2.setName("张三");System.out.println(p2);
//p2内存地址boolean b=p1.equals(p2);System.out.println(b);} }//运行结果:com.zs.demo5.Person@15db9742 // com.zs.demo5.Person@6d06d69c // false

可以看出,虽然p1与p2内用相同,但是内存地址却不同,所以比较结果为false;很多情况下我们是要比较他们的内容是否相同,所以需要重写equals方法;

public class Person {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Overridepublic boolean equals(Object obj) {//重写equals方法if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Person other = (Person) obj;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;} } public class Test1 {public static void main(String[] args) {Person p1=new Person();p1.setName("张三");System.out.println(p1);//p1内存地址Person p2=new Person();
     p2.setName("张三");System.out.println(p2);
//p2内存地址boolean b=p1.equals(p2);System.out.println(b);} } //运行结果:com.zs.demo5.Person@bd308 //     com.zs.demo5.Person@1f //     true

toString()方法;输出语句中调用的是toString方法,上例中,输出的是内存地址,当需要看对象中的值的时候,就重写toString()方法;

public class Person {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {//重写toString()方法return "Person [name=" + name + "]";}} public class Test1 {public static void main(String[] args) {Person p1=new Person();p1.setName("张三");System.out.println(p1);//p1内存地址Person p2=new Person();
     p2.setName("张三");System.out.println(p2);
//p2内存地址} }//运行结果:

//Person [name=张三]
//Person [name=张三]

这里添加一个特殊的例子

public class Demo {public static void main(String[] args) {String s="hello";//String 直接赋值的时候,可以通过==判断是否相等;String s2="hello";System.out.println(s==s2);//==判断;返回值为trueString s3=new String("hello");//创建string对象String s4=new String("hello");System.out.println(s3==s4);//当string为引用类型变量创建的对象时,s2、s3代表的是对象;比较的是内存地址;结果是false;System.out.println(s3.equals(s4));//String重写了Object中equals()方法,比较结果为true; } }

 

  

  

转载于:https://www.cnblogs.com/Zs-book1/p/10554856.html

总结

以上是生活随笔为你收集整理的Java学习笔记13(equals()方法;toString()方法)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。