Java中的toString()方法

.toString()方法是Object类的一个方法,它是Java所有类的根父类。

这意味着任何在Java中定义的类,如果没有显式覆盖toString()方法,都会继承自Object类的默认toString()实现。

Object类的toString()方法

默认返回一个字符串,该字符串包含对象的类名、@符号以及对象的哈希码的十六进制表示。

 创建一个简单的类MyObject,不重写toString()方法:

// 定义一个简单的类MyObject,这个类没有重写toString()方法,所以会使用Object类的默认实现
public class MyObject {// 私有字段id,用于存储一个整型值private int id;// 构造器,接受一个整型参数并将其赋值给idpublic MyObject(int id) {this.id = id;}
}// 主类,包含main方法,是程序的入口点
public class Main {// 主方法,程序从这里开始执行public static void main(String[] args) {// 创建MyObject的一个实例,传入整数1作为参数MyObject obj = new MyObject(1);// 调用MyObject实例的toString()方法并输出其结果// 因为MyObject没有重写toString(),所以会调用Object类的默认实现System.out.println(obj.toString()); // 输出将是类似"com.example.MyObject@1234abcd"的字符串}
}

在Java中,许多内置类都重写了toString()方法,以便提供更加有用和有意义的对象表示。以下是一些常见的内置类,它们重写了toString()方法:

  • String:返回字符串本身的值。
  • Date:返回日期和时间的字符串表示。
  • File:返回文件路径的字符串表示。
  • Throwable:返回异常的详细信息,包括错误消息和堆栈跟踪。
  • Wrapper(如IntegerDoubleBoolean等):返回封装的基本数据类型值的字符串表示。
  • ArrayList和其他集合类:返回集合内容的字符串表示。

下面是几个Java内置类重写toString()方法的例子,展示它们如何提供各自特有的字符串表示。

1. String

String str = "Hello";
System.out.println(str.toString()); // 输出: Hello

String类的toString()方法直接返回字符串本身的值。

2. Date

import java.util.Date;Date now = new Date();
System.out.println(now.toString()); // 输出类似于: Wed Oct 23 10:20:18 CST 2024

Date类的toString()方法返回当前日期和时间的字符串表示。

3. File

import java.io.File;File file = new File("example.txt");
System.out.println(file.toString()); // 输出: /path/to/example.txt

File类的toString()方法返回文件的绝对路径。

4. Integer

Integer num = 123;
System.out.println(num.toString()); // 输出: 123

Integer类的toString()方法返回整数值的字符串表示。

5. ArrayList

import java.util.ArrayList;ArrayList<String> list = new ArrayList<>();
list.add("one");
list.add("two");
System.out.println(list.toString()); // 输出: [one, two]

ArrayListtoString()方法返回一个表示列表内容的字符串。

6. 自定义

在实际应用中,程序员往往会覆盖Object类中的toString()方法,以提供一个更有意义的字符串表示,通常描述的是对象的状态或相关信息。

 假设你有一个Person类,包含nameage两个字段,你可以这样重写toString()方法:

// 定义一个Person类,用于存储人的基本信息
public class Person {// 私有字段name,存储人的名字private String name;// 私有字段age,存储人的年龄private int age;// 构造器,用于初始化Person类的实例// 接受两个参数:一个名字和一个年龄public Person(String name, int age) {// 将构造器传入的名字赋值给class中的name字段this.name = name;// 将构造器传入的年龄赋值给class中的age字段this.age = age;}// 重写toString()方法,这是Object类中的方法// 目的是提供一个更有意义的字符串表示形式@Overridepublic String toString() {// 返回一个格式化后的字符串,其中包含了name和age的值// 使用加号连接字符串和变量return "Person{" +             // 开始字符串,指明要构建关于Person的信息"name='" + name + '\'' +// 继续添加name和相应的引号", age=" + age +        // 添加age信息'}';                   // 结束字符串,完成格式化过程}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/452361.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘Map与Set的键值奥秘与集合魅力,解锁高效数据魔法

文章目录 前言➰一、关联式容器1.1 关联式容器的概述1.2 关联式容器的工作原理1.3 关联式容器的核心特性 ➰二、键值对2.1 键值对的基本概念2.2 键值对在C中的实现 ➰三、树形结构的关联式容器3.1 树形结构的特点3.2 使用场景 ➰四、set的使用与定义4.1 set的基本特性4.2 set的…

Flutter UI组件库(JUI)

Flutter UI组件库 (JUI) 介绍 您是否正在寻找一种方法来简化Flutter开发过程&#xff0c;并创建美观、一致的用户界面&#xff1f;您的搜索到此为止&#xff01;我们的Flutter UI组件库&#xff08;JUI&#xff09;提供了广泛的预构建、可自定义组件&#xff0c;帮助您快速构建…

RHCE--ntp客户端,时间服务器服务端

NTP 是网络时间协议&#xff08; Network Time Protocol &#xff09;的简称&#xff0c;通过 udp 123 端口进行网络时钟同步。 Chrony 是一个开源自由的网络时间协议 NTP 的客户端和服务器软件。它能让计算机保持系统时钟与时钟服务器&#xff08; NTP &#xff09;同步&#…

计算机网络:数据链路层 —— 以太网(Ethernet)

文章目录 局域网局域网的主要特征 以太网以太网的发展100BASE-T 以太网物理层标准 吉比特以太网载波延伸物理层标准 10吉比特以太网汇聚层交换机物理层标准 40/100吉比特以太网传输媒体 局域网 局域网&#xff08;Local Area Network, LAN&#xff09;是一种计算机网络&#x…

基于SSM果蔬经营系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;商品信息管理&#xff0c;类型管理&#xff0c;系统管理&#xff0c;订单管理 前台账号功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;商品信息&#xff0c;广告…

爬虫+数据保存

爬虫以及数据保存 这篇文章, 分享如何将爬虫爬到的数据, 保存到excel表格当中。 文章目录 1.安装保存数据的第三方库openpyxl并使用 2.爬虫加单表数据保存 3.爬虫加多表数据保存 4.实战 一、安装保存数据的第三方库openpyxl并使用 我们需要安装openpyxl的第三方库 安装…

Qt第十三天:网络编程:TCP和UDP的使用

我发现了有些人喜欢静静看博客不聊天呐&#xff0c; 但是ta会点赞。 这样的人呢帅气低调有内涵&#xff0c; 美丽大方很优雅。 说的就是你&#xff0c; 不用再怀疑哦 ❤️TCP&#xff1a; 一、创建项目&#xff0c;命名为Server&#xff0c;继承QWidget 二、添加Qt设计师…

CentOS7安装RabbitMQ-3.13.7、修改端口号

本文安装版本&#xff1a; Erlang&#xff1a;26.0 官网下载地址 Erlang RabbitMQ&#xff1a;3.13.7 官网下载地址 RabbitMQ RabbitMQ和Erlang对应关系查看&#xff1a;https://www.rabbitmq.com/which-erlang.html 注&#xff1a;安装erlang之前先安装下依赖文件&#xff0…

云黑系统全解无后门 +搭建教程

这套系统呢是玖逸之前南逸写的一套云黑系统&#xff0c;功能带有卡密生成和添加黑名单等&#xff0c;源码放在我的网盘里已经两年之久&#xff0c;由于玖逸现在已经跑路了所以现在发出来分享给大家&#xff0c;需要的可以自己拿去而开&#xff0c;反正功能也不是很多具体的自己…

Teledyne LeCroy:800G高速以太网一站式自动化测试解决方案(网络打流测试+物理层加压干扰+协议分析)

LinkExpert一站式测试解决方案 LinkExpert 是一款软件应用程序&#xff0c;可对Teledyne LeCroy的协议分析仪和训练器进行自动化硬件控制和管理。除了作为合规性、一致性和验证测试的便捷接口外&#xff0c;它还能轻松地将这些测试添加到自动回归测试流程中。 现在&#xff0c;…

WPF基础权限系统

一.开发环境 VisualStudio 2022NET SDK 8.0Prism 版本 8.1.97Sqlite 二. 功能介绍 WPF 基础权限系统&#xff0c;是一个支持前后端分离设计的 客户端(C/S)项目&#xff0c;该示例项目前端xaml使用UI库 &#xff0c;Material Design Themes UI 来构建用户界面&#xff0c;确保…

C# -- Abstract、Virtual、interface

一、Virtual方法&#xff08;虚方法&#xff09; 1&#xff09;virtual 关键字用于在基类&#xff08;父类&#xff09;中修饰方法 2&#xff09;基类中定义了virtual方法&#xff0c;派生类中使用override重写该方法 二、Abstract方法&#xff08;抽象方法&#xff09; 1&…

【ssh】Mac 使用 ssh 连接阿里云报错:Connection reset by 8.155.1.xxx port 22

Mac 使用 ssh 连接阿里云报错&#xff1a;Connection reset by 8.155.1.xxx port 22 问题描述解决办法 问题描述 Connection reset by 8.155.1.xxx port 22解决办法 关掉代理 VPN

CTFHUB技能树之XSS——存储型

开启靶场&#xff0c;打开链接&#xff1a; 发现地址栏中的URL没有GET传参&#xff0c;而且这次是“Hello&#xff0c;no name” 还是跟反射型一样的流程&#xff1a; 先注入一下看看&#xff1a; <script>alert(1)</script> 但界面的结果还是“Hello&#xff0c…

【网络协议】之 HTTP 协议详解

HTTP 协议是 Web 的基石&#xff0c;它定义了客户端和服务器之间的通信规则。本文将深入地探讨 HTTP 的核心概念&#xff0c;包括工作原理、请求方法、状态码以及不同 HTTP 版本的演进。 一、HTTP 的工作原理 HTTP 协议基于客户端-服务器模型&#xff0c;遵循请求-响应的循环&…

FineReport 计算同比增长

1、数据库查询 SELECTt1.年,t1.月,t1.总金额 AS 同期金额,t1.仓库名称,t2.总金额 AS 上期金额 FROMtest t1LEFT JOIN test t2 ON ( t1.年 t2.年 1 ) AND t1.月 t2.月 AND t1.仓库名称 t2.仓库名称2、配置字段 月份字段加后缀 月 数据列加后缀 计算同比增长率 if(LEN(B3)0 …

2024年五一杯数学建模C题煤矿深部开采冲击地压危险预测求解全过程论文及程序

2024年五一杯数学建模 C题 煤矿深部开采冲击地压危险预测 原题再现&#xff1a; “煤炭是中国的主要能源和重要的工业原料。然而&#xff0c;随着开采深度的增加&#xff0c;地应力增大&#xff0c;井下煤岩动力灾害风险越来越大&#xff0c;严重影响着煤矿的安全高效开采。在…

VScode背景更改

效果 实现方法 第0步 以管理员身份运行VScode 首先 需要安装这个扩展 然后 接下来 找到配置文件 再后来 在配置文件的下面但不超过最后一个大括号的地方加入以下内容 "update.enableWindowsBackgroundUpdates": true,"background.fullscreen": {…

Nature 正刊丨群体爆发中的神经元序列在人类皮层中编码信息

01摘要 传统上&#xff0c;神经编码是通过对不同刺激的放电率和潜伏期的变化来检查的1,2,3,4,5。然而&#xff0c;神经元群体也可能表现出短暂的尖峰活动爆发&#xff0c;其中神经元以特定的时间顺序或序列放电6,7,8。人脑可以利用群体爆发中的这些神经元序列来有效地表示信息…

React中的useState和useEffect解析

一、组件状态管理——useState 1.定义 useState 是一个 React Hook&#xff08;函数&#xff09;&#xff0c;它允许我们向组件添加一个状态变量&#xff0c;从而控制影响组件的渲染结果 和普通JS变量不同的是&#xff0c;状态变量一旦发生变化组件的视图UI也会跟着变化&…