Java SE学习笔记 --->高级类特性 ---> toString() 方法
概述:
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() 方法的更多相关文章
- 《深入Java虚拟机学习笔记》- 第19章 方法的调用与返回
<深入Java虚拟机学习笔记>- 第19章 方法的调用与返回
- Java学习笔记-File类的基本方法
要渐渐养成写博客的习惯-----> 前段时间看Mars的java中的I/O流没怎么懂,发现I/O流好难啊.今天重新看一遍其他教学,还有书籍,做些笔记,记录下每天的学习生活. File类的一些方法 ...
- 《Effective Java》学习笔记 —— 枚举、注解与方法
Java的枚举.注解与方法... 第30条 用枚举代替int常量 第31条 用实例域代替序数 可以考虑定义一个final int 代替枚举中的 ordinal() 方法. 第32条 用EnumSet代 ...
- Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流)
1.File类:对硬盘上的文件和目录进行操作的类. File类是文件和目录路径名抽象表现形式 构造函数: 1) File(String pathname) Creat ...
- Android(java)学习笔记110:Java中操作文件的类介绍(File + IO流)
1.File类:对硬盘上的文件和目录进行操作的类. File类是文件和目录路径名抽象表现形式 构造函数: 1) File(String pathname) Creat ...
- Java学习笔记——File类之文件管理和读写操作、下载图片
Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...
- Java学习笔记之---类和对象
Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态 例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Android(java)学习笔记267:Android线程池形态
1. 线程池简介 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力. 假设一个服务器完成一项任务所需时间为:T1 创建线程时间, ...
随机推荐
- UNIX环境高级编程——system函数
system函数 功能:调用fork产生子进程,由子进程来调用:/bin/sh -c command来执行参数command所代表的命令,阻塞当前进程直到command命 令执行完毕. int sys ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十八)
现在需要实现具体的游戏逻辑大致如下: 玩家点击某条赛道选择一个选手,然后会弹出菜单窗口让玩家输入压赌的金额,如果输入的金额值非法,则在GameInterface下部的状态栏中显示提示,要求玩家重新输入 ...
- tomcat集群机制剖析及其生产部署选型
为什么要使用集群? 为什么要使用集群?主要有两方面原因:一是对于一些核心系统要求长期不能中断服务,为了提供高可用性我们需要由多台机器组成的集群:另外一方面,随着访问量越来越大且业务逻辑越来越复杂,单台 ...
- mysql进阶(十七)Cannot Connect to Database Server
Cannot Connect to Database Server 缘由 由于不同的项目中使用的数据库用户名与密码出现了不一致的情况,在其中之前较早一个项目执行过程中出现"The user ...
- python-inotify 在linux上安装
python-inotify 在linux上安装 0 下载 $ wget --no-check-certificate https://pypi.python.org/packages/source/ ...
- R.java文件介绍
HelloWorld工程中的R.java文件 package com.android.hellworld; public final class R { public static final ...
- C++中const的实现细节介绍(C,C#同理)
via:http://www.jb51.net/article/45755.htm 本篇文章主要是对C++中const的实现细节进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 1.什么 ...
- How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes
How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes ...
- ServletRequest
/** * Defines an object to provide client request information to a servlet. The * servlet container ...
- C/C++中如何产生伪随机数
1. C语言中的伪随机数产生函数 本节主要参考自一博文及cppreferrence. 我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以 ...