To String的几个作用

To String的几个作用

一、Object类中toString的作用

1、在主方法中我们可以直接用toString输出对象其中的内容

2023051911410089.png

2、我们需要直接输出对象中所属内容时,直接使用toString方法输出语句,输出内容不友好,不便于阅读

子类:

public class Student {
    private String name;
    private int age;
    private double height;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public double getHeight() {
        return height;
    }
    public void setHeight(double height) {
        this.height = height;
    }
    public Student() {
    }
    public Student(String name, int age, double height) {
        this.name = name;
        this.age = age;
        this.height = height;
    }
}

父类:

public class Test {
    public static void main(String[] args) {
        //创建一个Student类的具体实例:
        Student s = new Student("菲菲",19,160.8);
        //System.out.println(s);//com.msb.test01.Student@4554617c
        System.out.println(s);
    }
}

3、上述两个代码书写后在测试类Test中输出为下:

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=C%3A%5CUsers%5CAdministrator%5CAppData在这里插入图片描述

二、正确使用toString

子类对父类提供的toString方法不满意,进行改写,使之符合自己的需求!

​ !!!按照父类提供的模板进行改写!!!

在这里插入图片描述

改写后输出结果为:

在这里插入图片描述

总结:toString的作用就是对对象进行“自我介绍”,一般子类对父类提供的toString都不满意,都要进行重写。

三、在IDEA中高效使用toString

第一步:alt +insert

第二步:选中toString()

img

第三步:将所需参数选中,点击OK!

img

第四步:生成你所需的方法,也可在此基础上进行修改达到最佳效果

在这里插入图片描述

四、总结

toString方法:

​ 生成一个toString方法,将你需要的内容整合好,使你调用这个方法时直接输出,

是主方法中的输出语句中System.out.println(对象 **.**toString() );直接输出所需内容!

附:Java toString方法使用错误汇总

Java中的toString()方法是一个非常常用的方法,但是在使用时也需要注意一些问题,否则可能会出现错误。以下是一些常见的使用错误:

  • 忘记重写toString()方法

如果我们没有在自定义类中重写toString()方法,那么默认会使用Object类中的toString()方法,该方法返回的是一个包含类名和哈希码的字符串,这通常不是我们想要的结果。因此,我们需要在自定义类中重写toString()方法,以返回我们需要的字符串表示形式。

  • toString()方法中出现空指针异常

如果我们在toString()方法中引用了一个空对象的属性,那么就会出现空指针异常。因此,在使用toString()方法时,需要确保所有引用的属性都不为空。

  • toString()方法中出现死循环

如果我们在toString()方法中引用了该类的对象,而该对象又引用了该类的对象,那么就会出现死循环,导致程序崩溃。因此,在使用toString()方法时,需要确保不会出现循环引用的情况。

  • toString()方法中返回的字符串过长

如果我们在toString()方法中返回的字符串过长,那么可能会导致程序的性能下降。因此,在使用toString()方法时,需要确保返回的字符串不会过长,可以只返回一些关键信息。

  • toString()方法中返回的字符串过长

如果我们在toString()方法中返回的字符串过长,那么可能会导致程序的性能下降。因此,在使用toString()方法时,需要确保返回的字符串不会过长,可以只返回一些关键信息。

总之,在使用toString()方法时,需要注意以上问题,以确保程序的正确性和性能

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【快速上手ESP32(基于ESP-IDFVSCode)】11-MQTT

MQTT MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种基于发布/订阅模式的轻量级通讯协议,构建于TCP/IP协议之上。它最初由IBM在1999年发布,主要用于在硬件性能受限和网络状况不佳的情况下&…

如何使用 Fly.io 和 Tigris 部署 Next.js 应用

在本教程中,您将学习到应用部署平台 Fly.io 和全球分布式的 S3 兼容对象存储服务 Tigris。 这两个平台密切相关,使它们成为您项目的绝佳选择。您可以从 Fly.io 获得应用部署体验,并从 Tigris 获得对象存储功能。 应用部署相当简单易懂&…

短视频素材去哪里找,而且不带水印的那种?

为了确保视频创作者能够接触到全球范围内的优质资源,下面列出的视频素材网站各具特色,提供从标准视频到高动态范围(HDR)的素材,满足你在不同项目中的需求。 1. 蛙学府 (中国) 提供专业级的视频素材,特别适…

【C++】STL-vector的使用

目录 1、什么是vector? 2、vector的使用 2.1 vector的定义 ​编辑 2.2 遍历修改数据 2.3 迭代器 2.4 vector空间增长问题 2.5 vector的增删查改 3、迭代器失效 3.1 会引起其底层空间改变的操作,都有可能是迭代器失效 3.2 指定位置元素的删除操…

【触摸案例-多点触摸的案例 Objective-C语言】

一、我们来做这个多点触摸的案例 1.首先呢,按着这个option键啊,可以模拟多点触摸, 然后呢,再去怎么着去画圈儿, 它这个里边就会产生一个imageView,跟着你去变,会有这么一个效果, 那么,首先啊,我们新建一个项目, Name:03-多点触摸的案例 1)首先,我们把控制器的v…

dwc3控制器是怎么处理otg

概念 在OTG中,初始主机设备称为A设备,外设称为B设备。可用电缆的连接方式来决定初始角色。两用设备使用新型Mini-AB插座,从而使Mini-A插头、Mini-B插头和Mini-AB插座增添了第5个引脚(ID),以用于识别不同的…

网御星云防火墙策略配置

网御星云防火墙配置 1. 初始设定2. 网络配置3. 安全规则和策略4. 监控和维护零基础入门学习路线视频配套资料&国内外网安书籍、文档网络安全面试题 1. 初始设定 接入网络: 在开始配置之前,确保你的网御星云防火墙正确连接到网络。这通常涉及将WAN接…

基于Python实现的推箱子小游戏

Python贪吃蛇小游戏实现: 推箱子曾经在我们的童年给我们带来了很多乐趣。推箱子这款游戏现在基本上没人玩了,甚至在新一代人的印象中都已毫无记忆了。。。但是,这款游戏可以在一定程度上锻炼自己的编程能力。 运行效果如图所示: 游戏关卡有点…

Ubuntu系统强制用户设置复杂密码

1、安装cracklib模块 安装PAM的cracklib模块,cracklib能提供额外的密码检查能力 sudo apt-get install libpam-cracklib2、可用vim打开配置文件(或其它方式) sudo vim /etc/pam.d/common-password3、设置密码复杂度 在# here are the per…

滚珠丝杆有哪些应用场景?

在传动领域中滚珠丝杆是自动化设备和智能制造设备相结合的关键装置,在精密制造工艺、精密装配作业及现代物流系统等多元领域中,发挥着不可或缺的核心作用。其优点在于快速、高效、准确可靠和稳定。它能够在较小的转矩下产生很大的推力,所以被…

win11 安装qt5.14.2 、qtcreator、vs编译器 。用最小安装进行 c++开发qt界面

系统 :win11 一、安装vs生成工具 ,安装编译器 下载visualstudio tools 生成工具: 安装编译器 和 windows sdk: 安装debug 调试器: 二、Qt5.14.2下载 下载链接: Index of /archive/qt/5.14/5.14.2 安装qt 三、配置QT/…

【多态】有关多继承和菱形继承的多态

博主首页: 有趣的中国人 专栏首页: C进阶 其它专栏: C初阶 | 初阶数据结构 | Linux 博主会持续更新 本篇文章主要讲解 多继承和菱形继承的多态 的相关内容 文章目录 1. 回顾多态底层2. 抽象类2.1 概念2.2 接口继承和实现继承 3. 虚表所在…

文件上传漏洞(upload-labs)

目录 一、文件上传漏洞 1.什么是文件上传漏洞 常见的WebShell 2.文件上传产生漏洞的原因 二、文件上传绕过 (一)客服端绕过-JS验证 1.前端验证 upload-labs第一关 (二)绕过黑名单验证 黑名单验证 1.特殊解析后缀 upl…

Pandas 2.2 中文官方教程和指南(十一·一)

原文:pandas.pydata.org/docs/ PyArrow 功能 原文:pandas.pydata.org/docs/user_guide/pyarrow.html pandas 可以利用PyArrow来扩展功能并改善各种 API 的性能。这包括: 与 NumPy 相比,拥有更广泛的数据类型 对所有数据类型支持缺…

C# 结合JavaScript实现手写板签名并上传到服务器

应用场景 我们最近开发了一款笔迹测试功能的程序(测试版),用户在手写板上手写签名,提交后即可测试出被测试者的心理素质评价分析。类似功能的场景还比如,在银行柜台办理业务,期间可能需要您使用手写设备进…

linux 编译binutil 遇到问题

在centos6.10上编译binutil2.27时遇到问题: as.c💯31: error: ‘DEFAULT_GENERATE_ELF_STT_COMMON’ undeclared here (not in a function) 搜到解决方法是这个: 1、https://github.com/riscv-software-src/riscv-tools/issues/66 &#xf…

十七、Java网络编程(一)

1、Java网络编程的基本概念 1)网络编程的概念 Java作为一种与平台无关的语言,从一出现就与网络有关及其密切的关系,因为Java写的程序可以在网络上直接运行,使用Java,只需编写简单的代码就能实现强大的网络功能。下面将介绍几个与Java网络编程有关的概念。 2)TCP/IP协议概…

内置对象部分

一,内置对象 二,math对象 不是构造函数,不需要new来调用,而是直接使用里面的属性和方法即可 1.随机方法random 返回一个随机的小数 [0,1) 2.日起格式化 返回的月份会小一,记得加一 周一返回1&#xff…

iObit Uninstaller 安装、激活、使用教程

「软件简介」 IObit Uninstaller 一款专业的卸载工具,旨在彻底移除不需要的软件、插件以及 Windows 应用,同时提供安全、快速和轻量化的 PC 使用体验。 〖下载安装软件〗 版本:V 13.4.0 | 26.9 MB 支持系统:Windows 11/10/8.1/8/…

传媒论坛编辑部传媒论坛杂志社传媒论坛杂志2024年第7期目录

专题│场景传播研究 场景传播:一场遮盖自我与寻找自我的博弈 胡沈明; 3 基于CiteSpace的中国场景传播研究热点分析 管倩;粟银慧; 4-610《传媒论坛》投稿:cnqikantg126.com 数字世界的美与危:场景传播的失范与应对之举 王依晗;章洁…