public class Test{
public static void main(String[] args) {
Mankind mk=new Mankind();
System.out.println(mk);//打印50
System.out.println(".......................");
Person per=mk.new Person();
per.speak();
System.out.println(mk.toString());
}
} class Mankind{
private int old=50;
public String toString() {
// TODO Auto-generated method stub
return "ok";
}
class Person {
void speak() {
// TODO Auto-generated method stub
System.out.println("old="+new Mankind());
System.out.println("old="+Mankind.this);
} }
}

下面是解释:

1、System.out.println(center.toString())这句对应的源码:

public void println(String x) {
    synchronized (this) {
        print(x); // 打印x
        newLine(); // 换行
 }
}
这能看懂吧,直接输出了传进来的参数x(center.toString())
2、System.out.println(center)这句对应的源码:
public void println(Object x) {
        String s = String.valueOf(x); // x对象转换为String
        synchronized (this) {
            print(s);
            newLine();
        }
    }
 主要看String s = String.valueOf(x);这句,然后再看看是怎么把对象x转换为String的,
 String.valueOf(x)对应的源码:
 public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
    }
  这下看到了吧,把刚才那x(也就是你的center)转换为String是调用了obj.toString()得到
  的。
  所以"直接输出对象时,会默认调用对象toString()方法"
  3、我把 toString 改成 tostring 其变输出 ClassRoom@7150bd4d
  这里就直接调用到Object.toString()方法了,看看这方法的源码:
  public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
    这下知道为啥输出ClassRoom@7150bd4d了吧。

println与toString()的更多相关文章

  1. 重写toString()方法来描述一个类

    package com.zch.test; /* toString方法以及重写toString方法 toString方法是一个自我描述方法 方法本身返回的是该对象的实现类的 类名 + @ + hash ...

  2. 14、java中的equals()和toString()方法

    /* 所有对象的父类Object Object中的方法: equals() 对象是否相同的比较方法 toString()对象的字符串表现形式 */ class Person { String name ...

  3. Java中区别.toString() ,(String),valueOf()方法

    在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toString(),(String)要转换的对象,St ...

  4. String、String.valueOf、toString 它们三者的区别总结

    今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下 ...

  5. 玩坏JVM很简单--toString的递归调用

    在JVM的内存管理机制下很少发生内存溢出的情况.至少我碰见的少,好像在SSH我多次发布项目时候出现过一次.今天看见一个特简单的方法让内存溢出(好吧,我似乎作死了--!): public class I ...

  6. 基础学习day08---多态、简单工厂、Object类equals和toString

    一.多态 1.1.多态概念  定义:某一类事物的多种存在形态.        例:动物中猫,狗.    猫这个对象对应的类型是猫类型:猫 x = new 猫();    同时猫也是动物中的一种,也可以 ...

  7. java10-2 toString()方法

    public String toString():返回该对象的字符串表示. Integer类下的一个静态方法: public static String toHexString(int i):把一个整 ...

  8. JAVA中toString方法的作用

    因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”. 它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不 ...

  9. Arrays.toString Arrays.asList

    import java.util.Arrays; public class TestCalc{ public static void main(String[] args) { ,,,,,,,}; / ...

随机推荐

  1. java获取客户访问IP

    原文:http://blog.csdn.net/mydwr/article/details/9357187 /** * 获取访问者IP * * 在一般情况下使用Request.getRemoteAdd ...

  2. 【转载】Linux系统,设置Oracle开机启动,待整理

    http://www.cnblogs.com/mophee/archive/2013/06/03/3115805.html

  3. Redhat 6.4_联网 yum 配置

    步骤简述----------------------------------------------------------------- 1. 准备软件包 下载第三步的软件包即可.由于是联网yum配 ...

  4. 多线程调用HttpWebRequest并发连接限制

    .net 的 HttpWebRequest 或者 WebClient 在多线程情况下存在并发连接限制,这个限制在桌面操作系统如 windows xp , windows  7 下默认是2,在服务器操作 ...

  5. Jq_文档操作方法、属性操作方法、CSS操作函数

    JQuery文档操作方法 这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html(). 方法                            描述 addClass()      ...

  6. 获取iframe外边数据

    http://biancheng.dnbcw.info/javascript/178184.html

  7. 什么是cname a记录

    https://support.dnsimple.com/articles/cname-record/ CNAME就是别名记录,就是负责跳转,比如你给某个地址设置了一个cname,那当访问那个cnam ...

  8. vm 安装 vcenter 本主要记录选择l现有的受支持数据库

    1.将先决条件安装完毕. 安装 .NET3.5 全部下一步记录设置的密码.备忘.

  9. 在腾讯云上创建您的SQL Cluster(2)

    版权声明:本文由李斯达原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/248 来源:腾云阁 https://www.qclo ...

  10. unity3d模型制作规范

    1. 单位,比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例.统一单位为米. 2 ...