先认识一下Object

  1. Object 类的 toString 方法

返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())

2.  对象如果没有父类,默认继承Object。

如果没重写toString方法,则默认是Object的toString方法返回值:类名@哈希玛值;

package com.huojg.test;

import java.io.Serializable;

/*
* 为什么实体类要重写toString方法
* 测试。实验开始。。。。
*
*
*
* **/
public class Test5{
private String name;
private String sex;
private int No; public void Show(){
System.out.println("这是我的展示方法!!!!");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getNo() {
return No;
}
public void setNo(int no) {
this.No = no;
}
}

测试类

package com.huojg.test;

public class Test6 {
public static void main(String[] args) {
Class<?> demo= null;
try {
demo=Class.forName("com.huojg.test.Test5");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Test5 test5= new Test5();
test5.setName("xiaoming");
test5.setNo(001);
test5.setSex("man");
System.out.println(test5);
}
}

结果输出:

com.huojg.test.Test5@304e94a4

Test5添加toString方法

package com.huojg.test;

import java.io.Serializable;

/*
* 为什么实体类要重写toString方法
* 测试。实验开始。。。。
*
*
*
* **/
public class Test5{
private String name;
private String sex;
private int No; public void Show(){
System.out.println("这是我的展示方法!!!!");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getNo() {
return No;
}
public void setNo(int no) {
this.No = no;
}
@Override
public String toString() {
return "Test5 [name=" + name + ", sex=" + sex + ", No=" + No + "]";
} }

再次测试输出结果

Test5 [name=xiaoming, sex=man, No=1]

总结分析:

在类Test5中如果我们没有重写ToString方法。默认就是Object的toString方法输出格式。

如果我们在Test5中重写toString方法,那么输出格式就会按照我们定义的方式输出这个对象,因此可以这样理解:

重写toString是对对象打印输出的一种格式化。当你print一个对象是你需要这个对象在打印时展现的是什么形态你就把toString重写成你需要的返回形态。重写hashcode主要是为了规定对象之间的比较方式。如果你把对象存入hash集合,集合就会对对象的hashcode进行比较以区分两个对象是否是同一对象。

java实体类如果不重写toString方法,会如何?的更多相关文章

  1. hibernate里的实体类中不能重写toString

    @Test报堆栈溢出,   在main中报错toString

  2. [非技术参考]C#重写ToString方法

    C# 中的每个类或结构都隐式继承 Object 类. 因此,C# 中的每个对象都会获得 ToString 方法,此方法返回该对象的字符串表示形式. 例如,所有 int 类型的变量都有一个 ToStri ...

  3. 【java基础】为什么重写toString()方法?

    不得不说,有很多java初学者写java实体类的时候,并没有真正理解重写toString() 方法,可能是口头知道也可能是跟风随带添加toString() 方法,并没有真正理解其意义,如果真要被问起来 ...

  4. Effective Java 第三版——12. 始终重写 toString 方法

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  5. java 中重写toString()方法

    toString()方法 一般出现在System.out.println(类名.toString()); toString()是一种自我描述方法 本身返回的是 getClass().getName() ...

  6. java重写toString方法

    在输出对象属性时,重写toString按照你希望的输出形式重写 object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码.所以当你要想按 ...

  7. java继承 、方法重写、重写toString方法

    1.Java的继承,关键词Extends package cn.mwf.oo; public class TextExtends { public static void main(String[] ...

  8. java重写toString()方法

    toString()方法是Object类的方法,调用toString()会返回对象的描述信息. 1)为什么重写toString()方法呢? 如果不重写,直接调用Object类的toString()方法 ...

  9. 在java中为啥要重写toString 方法?

    在java中为啥要重写toString 方法?下面以一个简单的例子来说明. 先定义一个test5类.并写它的get,set方法. package test5; public class Test5 { ...

随机推荐

  1. sourceinsight----tabsiplus颜色配置文件

    参考: http://blog.csdn.net/orbit/article/details/7585607 下面是我的颜色配置 http://files.cnblogs.com/pengdongli ...

  2. Xcode 5 单元测试(一)使用XCTest进行单元测试

    在Objc.io #1的Testing View Controllers中讲解的就是单元测试的相关内容.本文说下如何通过Xcode 5中集成的XCTest框架进行简单的单元测试. 什么是单元测试 首先 ...

  3. 【Mybatis】mybatis查询报错org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'areaName' in 'class java.lang.String'

    mybatis查询报错: Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for pro ...

  4. win7 32位安装 mong0db

    http://blog.csdn.net/u013457382/article/details/50775268

  5. mysql关于访问权限以及root密码修改

    root密码修改:mysql> use mysql;mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = ' ...

  6. HDU4911:Inversion

    Problem Description bobo has a sequence a1,a2,-,an. He is allowed to swap two adjacent numbers for n ...

  7. Spring中如何配置事务

    学过SSH的都知道,整合了SSH之后,SSH的经典增删改查案例业务逻辑层的代码就十分简单.基本上都是一句话的事. public void addUser(Webuserlogin user) { // ...

  8. 接口测试工具(Postman)

    给大家介绍一款HTTP接口测试工具 -- Postman ! 优点: 1. 支持参数名与参数值自定义,无论head还是body 2. 支持多种方法调用,包含get与post 3. 支持鉴权加密,包含b ...

  9. charles抓https包

    Charles是一款非常好用的抓包工具,有Window,Linux,Mac OS三个版本,个人觉得比shark和TCPDump好用多了. 闲话不多说,公司将服务从http转到https,导致今天因为抓 ...

  10. Vue mixins extend

    const mixins = { created () { console.log('mixins created') } } const mixins2 = { created () { conso ...