Java学习之toString方法

news2024/11/15 19:48:31

目录

toString方法的功能

Object类的toString方法

源代码

子类没有重写的案例

 子类重写toString

使用Alt+Insert自动重写

输出结果

 最后一条

 例子


toString方法的功能

返回该对象的字符串表示。默认返回:全类名(包名+类名)+@+哈希值的十六进制(哈希值就是通过hashCode方法得到的一个整数)

Object类的toString方法

源代码

/*
    Object类中toString方法的源码
    //getClass().getName() 类的全类名
    //Integer.toHexString(hashCode()):把对象的hashCode值转换成十六进制
    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
     */

子类没有重写的案例
 

package com.hspedu.object_;

public class ToString {
    public static void main(String[] args) {
        /*
    Object类中toString方法的源码
    //getClass().getName() 类的全类名
    //Integer.toHexString(hashCode()):把对象的hashCode值转换成十六进制
    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
     */
        Monster monster = new Monster("小钻风", "巡山", 4500);
        //调用这个对象的toString方法,
        // 此时在子类-Monster中并没有重写toString方法,所以调用的是Object类的toString方法
        //返回:com.hspedu.object_.Monster@4eec7777
        //com.hspedu.object_.Monster为全类名
        //4eec7777为monster的hashCode值的1324119927十六进制
        System.out.println(monster.toString());
        System.out.println(monster.hashCode());//输出1324119927(十进制)
    }

}
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

使用Alt+Insert自动重写

重写之后可以打印出对象的属性

    @Override
    public String toString() {//shuchu
        return "Monster{" +
                "name='" + name + '\'' +
                ", job='" + job + '\'' +
                ", sal=" + sal +
                '}';
    }
子类重写toString之后,再调用时,根据运行类型,就会首先调用子类的toString方法

输出结果

 最后一条

当直接输出一个对象时,toString方法会被默认的调用

 例子

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【云服务器 ECS 实战】ECS 快照镜像的原理及用法详解

一、ECS 快照1. 阿里云 ECS 快照概述• ECS 增量快照机制2. 快照服务的开通与使用• 开通快照与 OSS 资源包的购买• 手动快照• 自动快照二、ECS 镜像1. 阿里云 ECS 镜像概述2. 自定义镜像的创建与使用• 导入镜像• 自定义镜像一、ECS 快照 1. 阿里云 ECS 快照概述 阿里云快…

[ Linux ] 进程信号递达,阻塞,捕捉

目录 1.core dump字段 1.1 Core dump是什么? 1.2 用代码看看Core Dump 1.3 core dump的作用 core dump一般会被关掉 2.阻塞信号 2.1 信号其他相关常见概念 2.2在内核中的表示 3.信号产生中 3.1 sigset_t 3.2信号集操作函数 3.2.1 sigprocmask 3.2.2 si…

Carla学习2:carla安装与使用

文章目录0. 建议1. carla学习相关链接1.1 官方资料1.1 学习教程2. Carla安装2.1 服务器端2.1.1 下载预编译版本(也可以使用下载源码并编译)2.1.2 启动服务器端及服务器端显示导航2.3 客户端2.3.1 创建python环境2.3.2 安装carla 的pythonAPI所需要的依赖…

自动平移门风淋室——化妆品行业的全面自动化门体

自动平移门风淋室工作原理:自动平移门风淋室包括单人风淋室,双人风淋室,多人风淋室,全不锈钢风淋室,快速卷帘门风淋室,防爆风淋室,风淋通道、转角风淋室、钢板烤漆风淋室, QS认证风淋室,全自动风淋室,臭氧杀菌风淋室,电加热风淋室,防静电风淋室,化妆品行业风淋室,汽…

一万五字的文章,超详细的画图,带你理解链表的基础和进阶题目(含快慢指针的讲解)

在今天的文章中,我将带来链表的面试题。在数据结构的学习过程中,画图是尤为重要的,所以在这些题目的讲解的过程中,我以画图为主。温馨提示:由于图片过大,手机观看可能出现模糊不清的情况,建议在电脑观看该篇…

Redis【10】-Redis发布订阅

简介 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客 户端可以订阅任意数量的频道。 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 R…

R-CNN系列目标检测算法对比

引言 对比了R-CNN,Fast R-CNN,Faster R-CNN,Mask R-CNN目标检测算法的发展过程与优缺点。 R-CNN R-CNN是第一个成功第将深度学习应用到目标检测的算法。后面的Fast R-CNN,Faster R-CNN都是建立在R-CNN的基础上的。 R-CNN的检测…

实验2_前馈神经网络实验

文章目录实验要求数据集定义1 手动实现前馈神经网络解决上述回归、二分类、多分类任务1.1手动实现前馈网络-回归任务1.2 手动实现前馈网络-二分类任务1.3 手动实现前馈网络-多分类1.4 实验结果分析2 利用torch.nn实现前馈神经网络解决上述回归、二分类、多分类任务2.1 torch.nn…

[附源码]Node.js计算机毕业设计宠物短期寄养平台Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我们…

Mybatis 基础入门示例-步骤清晰简单

目录 1、新建数据库 2、新建项目 2.1导入依赖 2.2创建子工程(新建模块) 2.3添加配置文件mybatis-config.xml 2.4添加数据源 2.5编写mybatis核心配置文件 2.6编写MybatisUtils工具类 3、编写代码 3.1实体类 3.2 Mapper(UserDao)接口 3.3 接口…

如何在 Hexo Blog 网站上添加图标(iconfont 使用)

emsp; 因为在制作自己的个人主页的时候遇到了Hexo主题没有提供对应图标的问题,就查看了一下Hexo主题是如何添加图标的。发现主要的方法是直接修改fonts文件夹下的iconfont.svg文件。修改yilia theme下的font文件,这个也刚好是同学blog使用的主题&#x…

代码是如何控制硬件的?

简单来说,就是软件指令通过操作寄存器,控制与、或、非门搭建的芯片电路,产生、保存高低电平信号,实现相应的逻辑,最终通过IO、串口等输出。 要想更清楚的了解软件控制硬件的原理,就要明白cpu的框架及工作原…

Mysql 进阶(面向面试篇)索引

1、索引 1.1 索引概述 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以…

springboot整合Swagger在线文档

SpringBoot整合Swagger2在线文档 一 什么是swagger? 我们前面有讲到说开发时会创建Restful风格的API接口,供第三方或前端人员使用,那么前端人员在使用的过程中怎么知道有哪些接口呢。这个时候可以通过写接口文档来解决,但不同的…

202/12/10 基础算法每日5道详解

21. Merge Two Sorted Lists合并两个排序列表 You are given the heads of two sorted linked lists list1 and list2. Merge the two lists in a one sorted list. The list should be made by splicing together the nodes of the first two lists. Return the head of the m…

Java基于springboot的人职匹配推荐系统-计算机毕业设计

项目介绍 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于人职匹配推荐系统当然也不能排除在外,随着网络技术的不断成熟,带动了人职匹配推荐系统,它彻底改变…

[附源码]计算机毕业设计基于人脸识别的社区防疫管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

字节管理薪资被应届生倒挂7K,这真的是不把老员工当人?

一位字节跳动的小管理爆出,无意中看到了整个部门薪资,本以为自己算比较高的,但看完之后整个人都傻眼了。小组长的职位月薪28K,而手下组员却是35K,当天晚上抽了一包烟也没想明白是为什么。 楼主表示,自己是字…

算法基础篇-05-排序-LowB三人组(冒泡/选择/插入排序)

1. LowB 三人组介绍 LowB 三人组的时间复杂度都是 O(n^2) 1.1 冒泡排序(Bubble Sort) 列表每2个相邻的数,如果前面比后面大,则交换这两个数。一趟排序完成后,则无序区减少一个数,有序区增加一个数;时间复杂度 O(n^2…

Linux 伙伴系统

Linux 伙伴系统前言一、rmqueue1.1 流程图1.2 函数原型1.3 通过PCP分配1.4 大阶页面分配二、__rmqueue2.1 流程图三、__rmqueue_pcplist3.1 流程图四、__rmqueue_fallback五、__rmqueue_smallest5.1 源码5.1.1 get_page_from_free_area5.1.2 del_page_from_free_list5.1.3 expe…