【JavaSE】toString方法基本使用

简介: 【JavaSE】toString方法基本使用

toString 方法

在这里插入图片描述

1) 基本介绍

  • 默认返回:全类名+@+哈希值的十六进制,【查看 Object 的 toString 方法】
/*
    Object的toString()方法:
    (1)getClass().getName():全类名(包名+类名)
    (2)Integer.toHexString(hashCode(): 将对象的hashCode值转成16进制字符串
*/    
    public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
  • 子类往往重写 toString 方法,用于返回对象的属性信息。

2) 重写 toString 方法,打印对象或拼接对象时,都会自动调用该对象的 toString 形式。

public class ToString_ {

    public static void main(String[] args) {

        Monster monster = new Monster("小妖怪", "巡山的", 1000);
        System.out.println(monster.toString());
        System.out.println("十进制:" + monster.hashCode());
        
    }
    
}

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 方法其实就是把对象的 hashCode 值转成 十六进制
  • 重写toString的方法,输出对象的属性值
public class ToString_ {

    public static void main(String[] args) {

        Monster monster = new Monster("小妖怪", "巡山的", 1000);
        System.out.println(monster.toString());
        System.out.println("十进制:" + monster.hashCode());
        
    }
    
}

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;
    }

    @Override
    public String toString() {//重写后,一般是把对象的属性值输出,当然也可以自己定制
        return "Monster{" +
                "name='" + name + '\'' +
                ", job='" + job + '\'' +
                ", sal=" + sal +
                '}';
    }
}

在这里插入图片描述

  1. 当直接输出一个对象时,toString 方法会被默认的调用,比如 System.out.println(monster); 就会默认调用 monster.toString();

在这里插入图片描述
在这里插入图片描述

目录
相关文章
|
8月前
|
Java 开发工具
JavaSE基础篇:Arrays数组工具类
JavaSE基础篇:Arrays数组工具类
|
Java
【Java用法】@NotEmpty、@NotBlank、@NotNull注解的使用方法与区别
【Java用法】@NotEmpty、@NotBlank、@NotNull注解的使用方法与区别
560 0
|
存储 算法 Java
【JavaSE】Java基础语法(十四):Static
概述 Java中的static是一个修饰符(也可称关键字),可以用于修饰变量、方法和代码块。 特点与应用 static修饰的成员具有以下特点: 被类的所有对象共享 是我们判断是否使用静态关键字的条件 随着类的加载而加载,优先于对象存在 对象需要类被加载后,才能创建 可以通过类名调用 也可以通过对象名调用
|
Java 索引 容器
【JavaSE】Java基础语法(十一):String、StringBuilder详解
🍸1. String类 🍉🍉1.1 String概述 1 String 类在 java.lang 包下,所以使用的时候不需要导包 2 String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例也就是 说,Java 程序中所有的双引号字符串,都是 String 类的对象 3 字符串不可变,它们的值在创建后不能被更改
|
存储 安全 Java
【JavaSE】Java基础语法(三十七):Java 中的 String 类(源码级别)(2)
2.11 char[] toCharArray() 2.12 String substring(int beginIndex) 从传入的索引处截取,截取到末尾,得到新的字符串 2.13 String substring(int beginIndex, int endIndex) 根据开始和结束索引进行截取,得到新的字 符串(包含头,不包含尾)
|
存储 Java
【JavaSE】Java基础语法(三十七):Java 中的 String 类(源码级别)(1)
String 表示 字符串类型,属于 引用数据类型 。Java 中 String 是 不可变 的。 在 Java 当中 双引号 括起来的字符串,是直接存储在“方法区”的“字符串常量池”当中的。 1. 构造方法 1.1 String()
|
JSON Java 数据挖掘
jackson解析泛型的正确写法 | Java Debug 笔记
jackson解析泛型的正确写法 本期 4ye 又带来了一个小 bug 啦,如下,小伙伴们是否见过这个异常呢? in unnamed module of loader 'app' bug描述 上次使用jackson进行数据转换的时候发生了下面这个错误。 java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class com.example.demo.model.User (java.util.LinkedHashMap is in module java.base of loader 'bo
1980 0
|
Oracle 关系型数据库 Java
【JavaSE】接口基本使用
【JavaSE】接口基本使用
167 0
【JavaSE】接口基本使用
|
Java API 索引
【JavaSE】List 接口和常用方法
【JavaSE】List 接口和常用方法
132 0
【JavaSE】List 接口和常用方法
|
安全 Java 测试技术
【JavaSE】泛型的基本使用
【JavaSE】泛型的基本使用
145 0
【JavaSE】泛型的基本使用