详解Java中的println输入和toString方法的重写问题

yizhihongxing

下面是详解Java中的println输入和toString方法的重写问题的完整攻略。

一、概述

在Java中,我们经常需要输出字符串以便于调试代码、观察程序运行逻辑等。此时,Java提供的println方法就非常方便,我们可以通过System.out.println()将信息输出到控制台。不过,在输出对象时,可能会遇到一些问题,比如输出的信息不够明确、可读性差等。针对这些问题,我们可以通过重写toString方法来自定义输出信息,从而提高输出信息的可读性。

二、Java中的println方法

在Java中,我们可以通过以下代码将字符串输出到控制台:

System.out.println("Hello World!");

其中,println是一个方法,它的作用是将括号内的内容输出到控制台,并在末尾自动添加换行符。我们还可以输出对象、数组等其他数据类型,比如:

int[] arr = {1, 2, 3};
System.out.println(arr);

此时输出的内容为:

[I@15db9742

显然,这样的输出不够明确、可读性差。这时,我们就需要重写相应的方法以自定义输出信息,以更好地查看输出结果。

三、Java中的toString方法

toString方法是Java中的一个方法,属于Object类中的方法,实际上所有的类都可以继承Object类并使用其方法。在默认情况下,toString方法返回的是一个对象地址的字符串表示,如前面提到的输出数组时,实际上就是输出了一个数组对象的地址信息。但是,我们可以通过重写toString方法,自定义输出信息,如下:

class Student {
    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 重写toString方法
    public String toString() {
        return "Student{name='" + name + "', age=" + age + "}";
    }
}

public class Main {
    public static void main(String[] args) {
        Student stu = new Student("张三", 18);
        System.out.println(stu);
    }
}

运行上述代码,输出结果为:

Student{name='张三', age=18}

可以看到,当我们重写了toString方法后,输出结果变得更加明确,便于查看。另外需要注意的是,重写toString方法需要保证其返回类型为字符串类型。

四、示例说明

以下是两个示例,介绍如何在Java中利用toString方法重写输出信息。

示例1

我们现在有一个Person类,属性包括nameagegender等信息。

class Person {
    private String name;
    private int age;
    private String gender;

    public Person(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    // 重写toString方法
    public String toString() {
        return "Person{name='" + name + "', age=" + age + ", gender='" + gender + "'}";
    }
}

现在,我们新建一个Person对象并输出其信息:

Person p = new Person("张三", 20, "男");
System.out.println(p);

输出结果为:

Person{name='张三', age=20, gender='男'}

可以看到,我们重写了toString方法以自定义输出信息,从而提高了输出信息的可读性。

示例2

我们现在有一个Animal类,包括nameagelocomotion等属性。

class Animal {
    private String name;
    private int age;
    private String locomotion;

    public Animal(String name, int age, String locomotion) {
        this.name = name;
        this.age = age;
        this.locomotion = locomotion;
    }
}

因为我们并没有重写toString方法,所以如果我们输出某个Animal对象,将只会得到默认的地址信息:

Animal ani = new Animal("狗", 3, "跑步");
System.out.println(ani);

输出结果为:

Animal@15db9742

此时,我们需要重写toString方法,自定义输出信息。在这里,我们输出的信息为Animal对象的locomotion属性值:

class Animal {
    private String name;
    private int age;
    private String locomotion;

    public Animal(String name, int age, String locomotion) {
        this.name = name;
        this.age = age;
        this.locomotion = locomotion;
    }

    // 重写toString方法
    public String toString() {
        return locomotion;
    }
}

这里我们只输出locomotion属性的值,所以现在我们再输出某个Animal对象:

Animal ani = new Animal("狗", 3, "跑步");
System.out.println(ani);

输出结果为:

跑步

可以看到,我们成功地重写了toString方法,自定义输出信息,提高了输出信息的可读性。

五、总结

通过本文介绍,我们了解了Java中的println方法和toString方法的基本用法,以及该如何重写toString方法来更好地输出对象信息。要想编写出高质量、高可复用性的Java代码,必须理解并熟练掌握这些知识点。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Java中的println输入和toString方法的重写问题 - Python技术站

(1)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • SpringBoot3整合MyBatis出现异常:Property ‘sqlSessionFactory’or ‘sqlSessionTemplate’ are required

    Spring Boot是目前非常受欢迎的开发框架,而MyBatis是一款优秀的数据库ORM框架,二者结合可以让我们开发高效率、高质量的Web应用。不过在整合Spring Boot和MyBatis的时候,有时候会遇到”Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required”异常,那么该…

    Java 2023年5月20日
    00
  • MyEclipse不能查看Hibernate函数说明该怎么办?

    如果使用MyEclipse开发Hibernate出现无法查看函数说明的问题,通常有以下两种解决方案: 解决方案一: 在MyEclipse中选择“Window”菜单,然后选择“Preferences”。 在打开的Preferences对话框中,选择“General”选项,并展开“Editors”>“Text Editors”>“Annotation…

    Java 2023年5月20日
    00
  • 详解如何在Spring Security中自定义权限表达式

    在对Spring Security中自定义权限表达式的攻略之前,先简单介绍一下权限表达式的作用: Spring Security中的权限表达式用于在方法调用或请求访问时,判断当前用户是否具有访问权限。Spring Security提供了很多默认的权限表达式,例如”hasRole()”和”hasAnyRole()”等。但是,我们有时需要根据不同的业务需求来自定…

    Java 2023年5月20日
    00
  • jsp页面中显示word/excel格式的文档的方法

    要在JSP页面中显示Word/Excel格式的文档,一般使用POI这个Java库来读取和处理这些文件,然后在JSP页面中显示处理后的内容。具体步骤如下: 引入POI库 首先需要在项目中引入POI库,可以通过Maven等方式进行引入。以下是Maven中引入POI和其依赖的pom.xml配置代码: <dependency> <groupId&g…

    Java 2023年6月15日
    00
  • 微信小程序 获取手机号 JavaScript解密示例代码详解

    首先,需要注意的是获取手机号的功能只能在已经授权获取用户手机号的场景中,才能够使用。在微信小程序中,需要先使用 wx.login() 获取到用户登录凭证 code,再调用 wx.request() 向后端服务器发送请求,获取用户加密的手机号信息。 以下是具体的流程和示例代码: 在小程序中,使用 wx.login() 获取用户登录凭证 code: wx.log…

    Java 2023年5月19日
    00
  • springboot整合JPA过程解析

    下面是对“springboot整合JPA过程解析”的完整攻略。 一、JPA介绍 JPA是Java Persistence API的缩写,是JavaEE环境下的持久化框架。它的目标是提供一种简单、统一的持久化方式,使得开发人员不需要过多关注数据访问细节,只需要关注业务逻辑的实现。 二、Spring Boot整合JPA 创建Maven项目并添加Spring Bo…

    Java 2023年6月1日
    00
  • java File类的基本使用方法总结

    Java File类的基本使用方法总结 Java中的File类提供了一些方法,可以对本地文件和目录进行操作。在本文中,我们将讨论这些方法及其用法,并且提供一些示例,以便您更好地理解这些方法的含义和使用。 创建一个File对象 我们可以使用以下构造函数来创建一个File对象: File file = new File("path/to/file&qu…

    Java 2023年5月20日
    00
  • spring boot使用@Async注解解决异步多线程入库的问题

    下面我来详细讲解 spring boot 使用 @Async 注解解决异步多线程入库的问题的完整攻略。 什么是 @Async 注解? @Async 注解是 Spring Boot 中用于实现异步调用的注解,使用 @Async 注解可以很轻松地将任务提交到 Spring 的线程池中,并利用多线程技术来提高处理能力。 如何实现异步多线程入库? 我们可以通过使用 …

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部