Java中的toString()方法

2023-05-16

一、toString()方法介绍

toString() 方法是 Object 类中的方法,toString() 方法源代码如下:

//(1)getClass().getName() 返回类的全类名(包名+类名)
//(2)Integer.toHexString(hashCode())将对象的hashCode值转成16进制字符串
public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

Object类中的toString方法输出的结果是:

包名.类名+@+16进制的哈希值

二、改写toString()方法

由于 Object 类中的 toString() 方法并不好用,因此很多其他类中都重写了此方法。(子类对父类提供的方法不满意,所以重写以符合自己的需求)

由于toString改写的太多,已经有了固定的格式,直接generate的toString方法源代码:

  • 该改写的toString方法目的是输出对象的属性值。
  • 当直接输出一个对象时,toString方法会被默认的调用。
public String toString() {   //重写后,默认一般是把对象的属性值输出
        return "Monster{" +
                "name='" + name + '\'' +
                ", job='" + job + '\'' +
                ", sal=" + sal +
                '}';}

下面是例子:

package object;

public class ToString {

    public static void main(String[] args) {
        Monster monster = new Monster("小妖怪", "巡山", 1000);
        System.out.println(monster.toString());
        System.out.println(monster);
    }
}

class Monster{
    private String name;
    private String job;
    private double sal;

    public Monster(String name, String job, double sal) {
        this.name = name;
        this.job = job;
        this.sal = sal;
    }

    //重写toString方法,输出对象的属性
    @Override
    public String toString() {   //重写后,默认一般是把对象的属性值输出
        return "Monster{" +
                "name='" + name + '\'' +
                ", job='" + job + '\'' +
                ", sal=" + sal +
                '}';
    }
}

输入结果如下:

Monster{name='小妖怪', job='巡山', sal=1000.0}

Monster{name='小妖怪', job='巡山', sal=1000.0}

总结:toString() 方法的作用,就像是介绍一下对象(像 monster 的属性都被说了一遍),一般子类对父类提供的 toString 都不满意,都要进行重写。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中的toString()方法 的相关文章

  • 如何在 Firebase 远程配置中从 JSON 获取值

    我是 Android 应用开发和 Firebase 的新手 我想知道如何获取存储在 Firebase 远程配置中的 JSONArray 文件中的值 String 和 Int 我使用 Firebase Remote Config 的最终目标是
  • “java.net.MalformedURLException:未找到协议”读取到 html 文件

    我收到一个错误 java net MalformedURLException Protocol not found 我想读取网络上的 HTML 文件 mainfest uses permission android name android
  • Java:在 eclipse 中导出到 .jar 文件

    我正在尝试将 Eclipse 中的程序导出到 jar 文件 在我的项目中 我添加了一些图片和 PDF s 当我导出到 jar 文件时 似乎只有main已编译并导出 我的意愿是如果可能的话将所有内容导出到 jar 文件 因为这样我想将其转换为
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • Kotlin 未解决的参考:CLI 上 gradle 的 println

    放一个printlnkotlin 函数返回之前的语句会崩溃 堆栈跟踪 thufir dur NetBeansProjects kotlin thufir dur NetBeansProjects kotlin gradle clean bu
  • 当客户端关闭连接时,Spring StreamingResponseBody 请求线程未清理

    我在控制器中有一个端点 它返回一个StreamingResponseBody 用于向客户端发送文件 其代码大致如下 RestController RequestMapping value api public class Controlle
  • Spring Security SAML2 使用 G Suite 作为 Idp

    我正在尝试使用 Spring Security 5 3 3 RELEASE 来处理 Spring Boot 应用程序中的 SAML2 身份验证 Spring Boot 应用程序将成为 SP G Suite 将成为 IDP 在我的 Maven
  • 了解joda时间PeriodFormatter

    我以为我明白了 但显然我不明白 你能帮我通过这些单元测试吗 Test public void second assertEquals 00 00 01 OurDateTimeFormatter format 1000 Test public
  • GWT 2.3 开发模式 - 托管模式 JSP 编译似乎不使用 java 1.5 兼容性

    无法编译 JSP 类 生成的 servlet 错误 DefaultMessage 上次更新 0 日期 中 0 时间 HH mm ss z 语法 错误 注释仅在源级别为 1 5 时可用 在尝试以开发模式在 Web 浏览器中打开我的 gwt 模
  • HashMap 值需要不可变吗?

    我知道 HashMap 中的键需要是不可变的 或者至少确保它们的哈希码 hashCode 不会改变或与另一个具有不同状态的对象发生冲突 但是 HashMap中存储的值是否需要与上面相同 为什么或者为什么不 这个想法是能够改变值 例如在其上调
  • QuerySyntaxException:无法找到类

    我正在使用 hql 生成 JunctionManagementListDto 类的实际 Java 对象 但我最终在控制台上出现以下异常 org hibernate hql internal ast QuerySyntaxException
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • “无法实例化活动”错误

    我的一个 Android 应用程序拥有大约 100 000 个用户 每周大约 10 次 我会通过 Google 的市场工具向我报告以下异常情况 java lang RuntimeException Unable to instantiate
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • 使用按钮作为列表的渲染器

    我想使用一个更复杂的渲染器 其中包含列表的多个组件 更准确地说 类似于this https stackoverflow com questions 10840498 java swing 1 6 textinput like firefox
  • OpenCSV:将嵌套 Bean 映射到 CSV 文件

    我正在尝试将 bean 映射到 CSV 文件 但问题是我的 bean 具有其他嵌套 bean 作为属性 所发生的情况是 OpenCSV 遍历属性找到一个 bean 然后进入其中并映射该 bean 内的所有数据 如果找到另一个 bean 它就
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO

随机推荐

  • 字节跳动2-1 三轮大数据方向算法20220330

    新鲜出炉 xff0c 大数据的总监 xff0c 一上来什么都没问 xff0c 让我写一个非递归后续遍历 很不好意思让他打脸了 xff0c 这个题我做过5片了 xff0c 理解上还是很深刻的 我就想对他说为啥面试连自我介绍都不给我 xff0c
  • 字节跳动抖音电商2-2 算法 20220331

    题目 xff1a n 61 61 nums length 1 lt 61 n lt 61 104 0 lt 61 nums i lt 61 n nums 中的所有数字都 独一无二 给定一个包含 0 n 中 n 个数的数组 nums xff0
  • java 线程池执行流程源码讲解

    threadPoolExecutor execute 执行过程 public void execute Runnable command if command 61 61 null throw new NullPointerExceptio
  • spring boot 打包成jar 包在发布到服务器上

    pom xml文件 lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt project xmlns 61 34 http maven apache org POM 4 0 0
  • JAVA Apache POI 之sax 解析10万级大数量数据

    第一步让我们来看看我们的大量数据的excel 文件 img src https img blog csdn net 20170330162913720 watermark 2 text aHR0cDovL2Jsb2cuY3Nkbi5uZXQ
  • 百度2014校园招聘笔试题武汉站三道算法设计题

    百度2014校园招聘笔试题武汉站三道算法设计题 1 给定任意一个整整数 求比这个数大且最小的不重复数 就是相邻两位不同 xff0c 例如1231 如1101就是重复数 解 xff1a 思路 xff1a 每次将给定的值加上1 xff0c 然后
  • spring data jpa 想使用EntityManager 对sql 进行处理四种方式(第四种本人改写的)

    下面看看主体的一个类 xff1a package com chinait service impl import java util List import javax persistence EntityManager import ja
  • Swagger2 (3) 集成easymock 生成mock 测试数据

    1 什么是 easy mock 2 可以集成swagger 3 我们来玩一下 首先你需要一个swagger 服务 xff1a 其次我们需要一个easy moke 网站账号 xff1a 接下来选择一个项目 点击编辑项目的配置 配置好项目信息
  • 用canvas做视频截图遇到的坑(已填坑)

    最近负责了一个后台功能的扩展 xff0c 因为没有前端 xff0c 所以客串了一把前端 xff0c 需求的内容是做一个视频截图的功能 xff0c 这期间遇到了canvas 的跨域问题 xff0c Uncaught DOMException
  • java 8 list.stream().collect Collectors.toMap 重复key 值处理

    问题描述 xff1a list 转 map 时 xff0c 首先看 两个phoneAuthUpdater 的key 都是 1 xff0c key 如果重复 xff0c 则会报这个错 可以选择第二种方法来解决 这种方式可以解决上面的问题 xf
  • mysql 时间格式转换,时区转化

    首先 xff0c 为了更好的展示 xff0c 我先把数据库里面存储的数据展示一下 xff0c 是如下图 xff1a 1 时间格式转换 时间 39 2019 01 22 15 45 06 39 转换成 unix 时间戳 select UNIX
  • 5.4 Stream Buffer

    Stream Buffer 是一种广义 Cache xff0c 主要功能是避免因为预读而造成的 Cache Pollution 问题 当采用该机制时 xff0c 处理器可以将预读的数据序列放入 Stream Buffer 中而不是放入 Ca
  • VxWorks的信号量机制分析

    VxWorks 的信号量机制分析 VxWorks 信号量是提供任务间通信 同步和互斥的最优选择 xff0c 提供任务间最快速的通信 也是提供任务间同步和互斥的主要手段 VxWorks 提供 3 种信号量来解决不同的问题 二进制信号量 xff
  • Linux系统内存、磁盘占用情况查询

    查看磁盘占用空间 df h 显示所有磁盘的使用情况 xff0c 包括磁盘的总大小 已用空间 可用空间和文件系统类型等 查看运行内存的占用情况 free m 查看进程 1 strong span style color fe2c24 ps s
  • 关于c语言的tcp通讯详细讲解

    目录 1 TCP概览 1 1 TCP基本特征 1 2 TCP通信流程基本原理 2 TCP编程的函数接口说明 3 TCP通讯测试代码 1 TCP概览 TCP全称 Transmition Control Protocol xff0c 即 xff
  • python watchdog:监控文件系统事件的Python库

    python watchdog xff1a 监控文件系统事件的Python库和shell工具 watchdog用来监控指定目录 文件的变化 xff0c 如添加删除文件或目录 修改文件内容 重命名文件或目录等 xff0c 每种变化都会产生一个
  • 关于c语言的udp通讯详细讲解

    目录 1 UDP简介 2 UDP通信流程 3 UDP的函数接口说明 4 UDP通讯测试代码 1 UDP简介 UDP全称 User Datagram Protocol xff0c 即 xff1a 用户数据报协议 是面向无连接的协议 通常 xf
  • python中关于Opencv中关于矩形的函数总结

    最近处理图像 xff0c 以前用的都是matlab xff0c 现在入手python比较慢 xff0c 这几天看到了很多命名和功能相似的函数 xff0c 作个记录总结一下 只是为了能够看下函数知道它是做什么的 xff0c 因此不会对其用法说
  • 在虚拟机中安装Ubuntu-Docker

    在虚拟机中安装Ubuntu Docker 第一步 安装虚拟机 1 安装虚拟机 xff0c 测试网络联网 图 1 安装ubuntu 图 2 设置系统时间 2 建立快照 建立快照 xff1a 快照001 安装成功 第二步 内核更新 可以通过do
  • Java中的toString()方法

    一 toString 方法介绍 toString 方法是 Object 类中的方法 xff0c toString 方法源代码如下 xff1a 1 getClass getName 返回类的全类名 包名 43 类名 2 Integer toH