当前位置: 移动技术网 > IT编程>开发语言>Java > Java连载56-toSting方法和equals方法

Java连载56-toSting方法和equals方法

2019年12月02日  | 移动技术网IT编程  | 我要评论

一、关于object中的tostring​方法:

1.sun公司在object类中设计tostring方法的目的:返回java对象的字符串的表示形式。

2.在现实的开发过程中,object里面的tostring方法已经不够用了,因为object的tostring方法实现​的结果不满意。object中的tostring方法实现的结果不满意。object中的呢tostring​方法要被重写了。

3.println打印的如果是对象的话,那么就会默认打印对象的tostring方法得到的结果。

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 +"]";

  }

}

​

二、关于object中的equals方法

1.object中的equals方法:

 

public boolean equals(o2){

  return (this == obj);//等号两边是引用类型,则比较内存地址,地址相同则返回true.反之,则返回false

}

 

//object中的equals方法比较的是两个引用的内存地址。java对象中的equals方法的设计目的在于:判断两个对象是否一样。

 

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;

  }

}

​

三、源码:

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.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

 

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网