概述

  toString() 方法在面向对象当中十分常见,使用频率很高,和equals() 方法一样,也是Object类中定义的方法。

jdk中 源码:

java.lang.Object类中ToString() 方法的定义如下:

public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

知识点:

1.toString()方法在 Object 类中定义。其返回值是String类型,返回类名和它的引用地址

  如:

public class TestToString {
public static void main(String[] args) {
Person p1 = new Person("AA", 10);
System.out.println(p1.toString());  //com.klx.learn7.Person@d17
System.out.println(p1); //com.klx.learn7.Person@d17 }
}

    com.klx.learn7.Person@d17

    @前边的“com.klx.learn7.Person” 对象所在的类

    @后边的"d17" 该对象的实体在堆空间中的首地址值(16进制)

2.当我们打印一个对象的引用时,实际上默认调用的就是这个对象的toString()方法,在进行String与其他类型数据的链接操作时,也会会自动调用toString() 方法。

  例:

Date now=new Date();
System.out.println(“now=”+now);
相当于:System.out.println(“now=”+now.toString());//now=Date@122345

3.当我们打印的对象所在的类 没有重写Object 中的toString() 方法时,那么调用的就是Object 中定义的toString() 方法,返回此对象所在的类以及对应的堆空间对象实体的首地址值。

4.当我们打印的对象所在的类 重写了toString() 方法时,调用的就是我们自己重写的toString() 方法。

比如:在所在的类中做如下定义:

public String toString() {
return "Person: name=" + name + " age:" + age;
}

那么当我们再次打印之前的

System.out.println(p1.toString());  //Person: name=AA age:10
System.out.println(p1); //Person: name=AA age:10

5.一般来说,在设计、新建一个类时,都提供一个toString() 方法。

常常这样重写:将对象的属性信息返回。

可以手动实现,也可以用eclipse自动调用(Source--->Generate toString())

6.java 中 的String类或者 Date类、包装类、File类等,已经实现了Object类中 toString() 方法的重写

7.可以根据需要再用户自定义类型中重写toString() 方法。 如String 类重写了toString() 方法,返回字符串的值。

Java SE学习笔记 --->高级类特性 ---> toString() 方法的更多相关文章

  1. 《深入Java虚拟机学习笔记》- 第19章 方法的调用与返回

    <深入Java虚拟机学习笔记>- 第19章 方法的调用与返回

  2. Java学习笔记-File类的基本方法

    要渐渐养成写博客的习惯-----> 前段时间看Mars的java中的I/O流没怎么懂,发现I/O流好难啊.今天重新看一遍其他教学,还有书籍,做些笔记,记录下每天的学习生活. File类的一些方法 ...

  3. 《Effective Java》学习笔记 —— 枚举、注解与方法

    Java的枚举.注解与方法... 第30条 用枚举代替int常量 第31条 用实例域代替序数 可以考虑定义一个final int 代替枚举中的 ordinal() 方法. 第32条 用EnumSet代 ...

  4. Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  5. Android(java)学习笔记110:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  6. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  7. Java学习笔记之---类和对象

    Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...

  8. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  9. Android(java)学习笔记267:Android线程池形态

    1. 线程池简介  多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力.     假设一个服务器完成一项任务所需时间为:T1 创建线程时间, ...

随机推荐

  1. 如何让 jQuery Mobile 不显示讨厌的 loading 界面

    jQuery Mobile 的一个BUG: 当不采用 ajax 以及 他自己的 back 返回的时候,即: 点击浏览器后退按钮时,将会从缓存之中加载页面,此时,讨厌的 loading 动画出来了,而且 ...

  2. linux 编译c程序与动态链接库

    linux 下编译c程序与动态链接库 1 动态库h文件和c文件 1.1 h 文件: kaflog4c.h /** * kaflog4c.h */ #include <stdio.h> #i ...

  3. 解决Plugin is too old,please update to a more recent version,or set ANDROID_DAILY_OVERRIDE..

    今天遇到了很诡异的事情. 昨天晚上还好好的工程今天就挂了,提示如下错误: Plugin is too old,please update to a more recent version,or set ...

  4. 【翻译】在Ext JS 5应用程序中如何使用路由

    原文:How to Use Routing in Your Ext JS 5 Apps 简介 Ext JS 5是一个重要的发布版本,它提供了许多新特性来创建丰富的.企业级的Web应用程序.MVVM和双 ...

  5. android MVP框架

    原文地址:http://blog.csdn.net/guxiao1201/article/details/40147209 在开发Android应用时,相信很多同学遇到和我一样的情况,虽然项目刚开始构 ...

  6. 04_Nginx命令行参数,控制信号,Nginx启动、停止、重启命令

     Nginx简单型,先关闭进程,修改你的配置后,重启进程. kill -QUIT `cat/usr/local/nginx/nginx.pid` ./nginx 2 重新加载配置文件,不重启进程, ...

  7. LeetCode之“树”:Binary Tree Preorder && Inorder && Postorder Traversal

    Binary Tree Preorder Traversal 题目链接 题目要求: Given a binary tree, return the preorder traversal of its ...

  8. ffdshow 源代码分析 4: 位图覆盖滤镜(滤镜部分Filter)

    ===================================================== ffdshow源代码分析系列文章列表: ffdshow 源代码分析 1: 整体结构 ffds ...

  9. sql记录查询重复注意事项(经验提升),in的用法和效率

    sql查询重复记录,使用: select * from dimappnamenew as appn where id in (   select id   from dimappnamenew gro ...

  10. 如何修改linux开机运行配置脚本

    开机运行级别的配置角本 /etc/inittab 开机运行级别  init 是切换运行级别的指令 0.关机              //init0 1.单用户模式(自动获取超级用户权限,无网络,无服 ...