Java連載56-toSting方法和equals方法

1、關於object中的toString​方法:java

1.SUN公司在Object類中設計toString方法的目的:返回java對象的字符串的表示形式。node

2.在現實的開發過程當中,Object裏面的toString方法已經不夠用了,由於Object的toString方法實現​的結果不滿意。Object中的toString方法實現的結果不滿意。Object中的呢toString​方法要被重寫了。git

3.println打印的若是是對象的話,那麼就會默認打印對象的toString方法獲得的結果。github

4.SUN公司的默認toString方法是這樣的算法

 

public String toString(){

  return getClass().getname() + "@" + Interger.toHexString(hashCode());

}

 

 

object中的toString方法返回:類名@java對象的內存地址通過哈希算法獲得的int類型值在轉換爲​十六進制。這個輸出能夠等同看做java對象在堆中內存地址​。微信

5.舉個例子學習

 

package com.bjpowernode.java_learning;

​

public class D56_1_ {

  public static void main(String[] args) {

    Object o1 = new Object();

    String s1 = o1.toString();

    System.out.println(s1);

    Person56 p1 = new Person56("sha",52);

    System.out.println(p1);//咱們能夠看出來,這裏打印出來的不是對象,而是打印的對象的toString方法的結果,因此和第11行結果相同

    String s2 = p1.toString();

    System.out.println(s2);

  }

}

class Person56 {

  String name;

  int age;

  Person56(String name ,int age){

    this.name = name ;

    this.age = age;

  }

  //重寫這個方法,就要按照項目的實際需求進行從新編寫

  public String toString() {

    return "Person[name=" + name + ",age=" + age +"]";

  }

}

​

2、關於Object中的equals方法大數據

1.Object中的equals方法:ui

 

public boolean equals(o2){

  return (this == obj);//等號兩邊是引用類型,則比較內存地址,地址相同則返回true.反之,則返回false

}

 

//Object中的equals方法比較的是兩個引用的內存地址。java對象中的equals方法的設計目的在於:判斷兩個對象是否同樣。this

 

2.舉個例子

 

package com.bjpowernode.java_learning;

​

public class D56_2_equalsMethodAnalysis {

  public static void main(String[] args) {

    Object o1 = new Object();

    Object o2 = new Object();

    boolean b1 = o1.equals(o2);

    System.out.println(b1);

    Star56 s1 = new Star56(100,"xiaoming");

    Star56 s2 = new Star56(100,"xiaoming");

    System.out.println(s1.equals(s2));

    //這樣比較出來的是false,由於比較的是兩個對象的內存地址,可是這樣顯然是不符合咱們的預期

    //其實咱們想要比較的是兩個對象裏面的內容是否是一致的。因而咱們重寫

   

  }

}

class Star56{

  int id;

  String name;

  public Star56(int id,String name) {

    this.id = id;

    this.name = name;

  }

}

​

3、源碼:

D56_1_toStringMethodAnalysis,java

D56_2_equalsMethodAnalysis.java

地址:

https://github.com/ruigege66/Java/blob/master/D56_1_toStringMethodAnalysis,java

https://github.com/ruigege66/Java/blob/master/D56_2_equalsMethodAnalysis.java

2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料

 

相關文章
相關標籤/搜索