Java toString解析
Java toString解析
我们知道,Java所有的类都是Object类的派生类,toString就是Object类中的一个方法。
我们看看它的源代码。
public String toString()
{
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
可以看见,toString方法返回的是一个字符串。该字符串由 类名+ "@" + 此对象的哈希码(无符号16进制)。
当我们没有重写Object类中的toString方法时,在调用System.out.println()直接传入对象名的时候,会自动调用对象的toString方法,打印出上述的内容。
如:
class Man{
public Man() {
}
}
public class Test {
public static void main(String[] args) {
Man Terry = new Man();
System.out.println(Terry);
}
}
// 结果
// Man@8efb846
既然我们知道在方法或定义,强制类型为String时,直接使用对象名会隐性调用toString方法,那么我们自然可以重写toString方法实现自己的目的。
import java.util.*;
class Man{
static int code = 0;
private int number = -1;
public Man() {
code++;
number = code;
}
@Override
public String toString() {
return "I am No." + number;
}
}
public class Test {
public static void main(String[] args) {
Man Terry = new Man();
Man Tom = new Man();
Man Mary = new Man();
System.out.println(Terry);
System.out.println(Tom);
System.out.println(Mary);
}
}
// 结果
/*
I am No.1
I am No.2
I am No.3
*/
Java toString解析的更多相关文章
- java基础解析系列(六)---深入注解原理及使用
java基础解析系列(六)---注解原理及使用 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer ja ...
- 使用JAVA API 解析ORC File
使用JAVA API 解析ORC File orc File 的解析过程中,使用FileInputFormat的getSplits(conf, 1)函数, 然后使用 RecordReaderreade ...
- java基础解析系列(六)---注解原理及使用
java基础解析系列(六)---注解原理及使用 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer缓存及 ...
- java基础解析系列(一)---String、StringBuffer、StringBuilder
java基础解析系列(一)---String.StringBuffer.StringBuilder 前言:本系列的主题是平时容易疏忽的知识点,只有基础扎实,在编码的时候才能更注重规范和性能,在出现bu ...
- Java注解解析-搭建自己的注解处理器(CLASS注解使用篇)
该文章是继Java注解解析-基础+运行时注解(RUNTIME)之后,使用注解处理器处理CLASS注解的文章.通过完整的Demo例子介绍整个注解处理器的搭建流程以及注意事项,你将知道如何去搭建自己的注解 ...
- java代码解析二维码
java代码解析二维码一般步骤 本文采用的是google的zxing技术进行解析二维码技术,解析二维码的一般步骤如下: 一.下载zxing-core的jar包: 二.创建一个BufferedImage ...
- java读取解析application.yml
java读取解析application.yml 不用依赖spring容器,可单独使用. bug已修改... 第一步.首先要2个jar <!-- properties和yaml格式化 --> ...
- Java Sax解析
一. Java Sax解析是按照xml文件的顺序一步一步的来解析,在解析xml文件之前,我们要先了解xml文件的节点的种类,一种是ElementNode,一种是TextNode.如下面的这段boo ...
- Java XML解析工具 dom4j介绍及使用实例
Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...
随机推荐
- 关于SDL的一些坑:找不到WinMain,不显示控制台,添加链接库等
目录: 用CMake构建SDL时报错 Gcc添加链接库 Gcc找不到入口(WinMain) 让SDL启动时不带控制台窗口 用CMake构建SDL时报错 root@ubuntu:~/SDL# cmake ...
- const 详解
简单分类: 常变量 const 类型 变量名 或者 类型 const 变量名 常引用 const 类型& 引用名 ...
- Redis集群搭建及选举原理
redis集群简述 哨兵模式中如果主从中master宕机了,是通过哨兵来选举出新的master,在这个选举切换主从的过程,整个redis服务是不可用的.而且哨兵模式中只有一个主节点对外提供服务,因此没 ...
- JAVAEE学习day05学习,数组
容器及元素的概念 容器:是将多个数据存储到一起 元素:每个数据称为该容器的元素 数组的概念 数组:数组是长度固定,存储数据的容器,保证多个数据的类型要一致 数组定义格式及其描述 动态定义: 数据类型 ...
- 在linux系统中安装LANMP
1.安装LANMP步骤 root@kali:~# wget http://dl.wdlinux.cn/files/lanmp_v3.tar.gz #下载 root@kali:~# tar xzvf l ...
- Linux - top命令监控列表的详细解析
统计信息区(系统资源信息区) 前五行,即列表上方的五行 第一行:输出系统任务队列信息 18:46:38:系统当前时间 up 2days 1:54:系统开机后到现在的总运行时间 1 user:当前登录用 ...
- 关于 RuntimeBinderException 异常
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException的异常一般来自于两种: 第一种情况: Predefined type 'Microsoft.C ...
- CF1326C Permutation Partitions 题解,
原题链接 简要题意: 给定一个 \(1\) ~ \(n\) 的置换,将数组分为 \(k\) 个区间,使得每个区间的最大值之和最大.求这个值,和分区的方案数. 关键在于 \(1\) ~ \(n\) 的置 ...
- ubuntu在github上传项目
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub. 作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户.随着越来 ...
- 使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法:
使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法: 1.错误详情: Excepti ...