日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

發布時間:2025/6/17 java 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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()方法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。