一篇文章带你了解java Object根类中关于toString,equals的方法

下面是关于Java Object类中toString和equals方法的详细讲解:

什么是Java Object根类

在Java中,所有类的祖先都是Object类。因此,Object类可以被看作是Java中的根类。它定义了Java中最通用的基本方法,例如toString和equals方法。

toString方法详解

在Java中,toString方法是Object类的一个重要方法。该方法的主要作用是返回代表当前对象字符串的表示形式。当输出一个对象时,toString方法会被自动调用。

以下是toString方法的基本语法:

public String toString()

示例

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

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

   @Override
   public String toString() {
      return "Name: " + name + ", Age: " + age;
   }
}

public class Main {
   public static void main(String[] args) {
      Person p = new Person("John", 30);
      System.out.println(p.toString());
   }
}

以上代码中,我们定义了一个名为Person的类,并重写了其toString方法,此时该方法返回的是一个字符串,将该对象的姓名与年龄显示在输出中。

equals方法详解

在Java中,equals方法的主要作用是比较两个对象的内容是否相同。 equals方法是Object类的一个重要方法,可以被其他类重写。

以下是equals方法的基本语法:

public boolean equals(Object obj)

其中,obj是另一个需要和当前对象进行比较的对象。如果当前对象与obj相等,则该方法返回true,否则返回false。

示例

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

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

   @Override
   public boolean equals(Object obj) {
      if (obj == null) return false;
      if (obj == this) return true;
      if (!(obj instanceof Person))return false;
      Person p = (Person)obj;
      return p.name.equals(name) && p.age == age;
   }
}

public class Main {
   public static void main(String[] args) {
      Person p1 = new Person("John", 30);
      Person p2 = new Person("John", 30);
      System.out.println(p1.equals(p2));
   }
}

以上代码中,我们定义了一个名为Person的类,并重写了其equals方法。在该方法中,我们首先判断obj是否为空或者当前对象是否与obj相等,然后将obj转换为Person类型,最后比较两个Person对象的姓名与年龄是否相同。

在main方法中,我们定义了两个Person对象p1和p2,并比较它们是否相等。由于它们的姓名与年龄都相同,所以equals方法返回true。

值得注意的是,当重写了equals方法时,还需要重写hashCode方法,以保证当两个对象equals方法返回true时,它们的hashCode值也相等。这是因为在Java中,当两个对象的hashCode值相同时,它们被视为是相同的对象。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一篇文章带你了解java Object根类中关于toString,equals的方法 - Python技术站

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

相关文章

  • JavaScript DOM实现简单留言板

    下面是“JavaScript DOM实现简单留言板”的完整攻略。 一、准备工作 1.1 创建HTML文件 首先,我们要创建一个HTML文件,命名为“index.html”。在这个文件里编写HTML结构,用于显示留言板的相关内容。 <!DOCTYPE html> <html> <head> <meta charset=…

    Java 2023年6月15日
    00
  • Spring Security使用数据库登录认证授权

    下面我将为您讲解如何使用Spring Security实现数据库登录认证和授权。 一、引入依赖 首先,需要在pom.xml文件中引入Spring Security依赖: <dependency> <groupId>org.springframework.security</groupId> <artifactId&g…

    Java 2023年6月3日
    00
  • Spring Boot 2.0多数据源配置方法实例详解

    Spring Boot 2.0多数据源配置方法实例详解 基础知识 在进行本文的阅读前,读者需要掌握以下知识: Spring Boot 2.0框架基础 数据源的概念和用法 Spring Boot在多数据源方面的优势和实现方式 实现过程 在多数据源的配置中,我们需要主要的是多个数据源的定义和配置。接下来,我们将给出两条实例来帮助读者更好的理解多数据源的配置。 步…

    Java 2023年5月20日
    00
  • Mybatis批量更新三种方式的实现

    首先我们可以从三种方式的实现入手进行讲解。 方式一:使用foreach标签 使用foreach标签是MyBatis中批量更新的最常用也是最简单的方式。通过foreach标签,可以将多个更新操作一次性提交到数据库中,实现批量更新的效果。 具体实现步骤如下: 在mapper配置文件中定义批量更新的SQL语句,语句中要使用到foreach标签。 <updat…

    Java 2023年5月20日
    00
  • 【SSM】一、了解Sping 框架

    〇、Maven 0.1 什么是Maven? Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build…

    Java 2023年4月25日
    00
  • 这是我的战争前期前五天玩法介绍

    我的战争前期前五天玩法介绍 在《我的战争》游戏中,前期的五天非常关键,这里提供一些玩家可以使用的策略来存活和发展。 1. 初期资源的获取 在游戏的开始,资源非常有限,但是这并不意味着你不能快速发展。第一天,最重要的任务是保持活下来,建立一个可以保护你的基地。最好的方法是寻找资源点并获得最初的几个资源,例如金属和木材,而不是在第一天建造建筑。 2. 建立初期的…

    Java 2023年6月16日
    00
  • SpringBoot配置外部静态资源映射问题

    在Spring Boot中,我们可以使用@ConfigurationProperties注解来配置应用程序的属性。在这些属性中,有一个非常重要的属性是spring.resources.static-locations,它用于指定应用程序的静态资源目录。本文将详细讲解如何配置Spring Boot的静态资源映射。 步骤一:添加静态资源 我们需要在应用程序的sr…

    Java 2023年5月15日
    00
  • 什么是代码优化?

    以下是关于代码优化的完整使用攻略: 什么是代码优化? 代码优化是指通过改进代码的设计、算法、数据结构、代码实现等方面,提高代码的运行效率和响应速度,减少资源占用和延迟等问题。代码优化的目的是提高程序的性能,使其更加高效、稳定和可靠。 代码优化的原则 代码优化需要遵循以下原则: 不要过早优化:在代码编写的早期,不要早地考虑优化问题,应该先保证代码的正确性和可读…

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