1. class Person
  2. {
  3. private String name;
  4. public Person(String name)
  5. {
  6. this.name=name;
  7. }
  8. }
  9. public classPrintObject {
  10. public static voidmain(String[] args)
  11. {
  12. Person2 p=new Person("ping");
  13. System.out.println(p.toString());
  14. }
  15. }

上面程序创建了一个Person对象,然后使用System.out.println()方法输出Person对象,结果如下:

Person@15db9742

System.out的println方法只能在控制台输出字符串,而Person实例是一个内存中的对象,怎么能直接转换为字符串输入呢?当使用该方法输出Person对象时,实际上输出Person对象的toString()方法的返回值,也就是这面代码效果相同

System.out.println(p);

System.out.println(p.toString());

toString方法是Object类里的一个实例方法,所有Java类都是object类的子类,因此所有Java对象都具有toString方法。

不仅如此,所有Java对象都可以和字符串进行连接运算,当Java对象和字符串进行连接运算时,系统自动调用Java对象toString()方法返回值和字符串进行连接运算下面代码效果相同

String pStr=p+””;

StringpStr=p.toString()+””;

toString()方法是一个非常特殊的方法,是一个“自我描述”方法,该方法通常用于实现当程序员直接打印该对象时,系统将会输出该对象的“自我描述”信息,用以告诉外界该对象具有的状态信息。

Object类提供的toString()方法总是返回该对象实现类的”类名+@+hashCode”值,这个返回值不能真正实现“自我描述”功能,因此我们可以重写object的toString()方法。

  1. class Apple1
  2. {
  3. private String color;
  4. private double weight;
  5. public Apple1(String color,double weight)
  6. {
  7. this.color=color;
  8. this.weight=weight;
  9. }
  10. public StringtoString()
  11. {
  12. return "Apple["+color+",weight:"+weight+"]";
  13. }
  14. }
  15. public classToStringTest {
  16. public static voidmain(String[] args)
  17. {
  18. Apple1 a=new Apple1("红色", 5.68);
  19. System.out.println(a);
  20. }
  21. }

运行结果

Apple[color=红色,weight=5.68]

java打印和重写toString的更多相关文章

  1. JDK源码阅读-------自学笔记(一)(java.lang.Object重写toString源码)

    一.前景提要 Object类中定义有public String toString()方法,其返回值是 String 类型. 二.默认返回组成 类名+@+16进制的hashcode,当使用打印方法打印的 ...

  2. java数组、java.lang.String、java.util.Arrays、java.lang.Object的toString()方法和equals()方法详解

    public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...

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

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

  4. java实体类如果不重写toString方法,会如何?

    先认识一下Object Object 类的 toString 方法 返回一个字符串,该字符串由类名(对象是该类的一个实例).at 标记符“@”和此对象哈希码的无符号十六进制表示组成.换句话说,该方法返 ...

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

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

  6. java重写toString()方法

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

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

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

  8. java 中重写toString()方法

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

  9. 为什么java实体类需要重写toString方法

    如果没重写toString的情况: Object 类的 toString 方法 返回一个字符串,该字符串由类名(对象是该类的一个实例).at 标记符“@”和此对象哈希码的无符号十六进制表示组成.换句话 ...

随机推荐

  1. RocketMQ 拉取消息-文件获取

    看完了上一篇的<RocketMQ 拉取消息-通信模块>,请求进入PullMessageProcessor中,接着 PullMessageProcessor.processRequest(f ...

  2. 修改ASPCMS升级扩展功能

    修改 inc/aspcms_templateFun.asp 查找"content=decodeHtml(rsObj("Content"))" 替换为”conte ...

  3. 【Firefly API文档】—— Package Netconnect

    http://bbs.gameres.com/forum.php?mod=viewthread&tid=219655 package netconnect 该包中包含的服务端与客户端通信的一些 ...

  4. php求斐波那契数列

    <?php function feibonaqi(){ //参数$num表示为第$num个数之前的所有斐波那契数列 $arr = array(); //定义一个空变量用来存放斐波那契数列的数组 ...

  5. Introducing MVC

    PS:这本书感觉不怎么样,这么多低频词就倒人胃口... Suppose you'v recently launched a new web site, only to find that it's s ...

  6. javascript 自定义Map

      迁移时间:2017年5月25日08:24:19 Author:Marydon 三.自定义Map数据格式 需特别注意的是: js中没有像java中的Map数据格式,js自带的map()方法用于:返回 ...

  7. CodeForces 390E Inna and Large Sweet Matrix(树状数组改段求段)

    树状数组仅仅能实现线段树区间改动和区间查询的功能,能够取代不须要lazy tag的线段树.且代码量和常数较小 首先定义一个数组 int c[N]; 并清空 memset(c, 0, sizeof c) ...

  8. 创建了几个String对象?

    String str = "a"; 1个,在常量池中创建了一个字符串对象. String str = new String("a"); 2个,在常量池中创建了一 ...

  9. hibernate 关于session的update方法

    先看写代码的方法: @Test     public void testUpdate3() {                         Teacher t = new Teacher();   ...

  10. 【WEB】jQuery获取页面回滚或跳转事件

    1.效果: 2.Jquery: //记得引入jquery.min.js <script type="text/javascript"> $(function(){ wi ...