首页 > 编程语言 >java Object类

java Object类

时间:2024-03-04 12:00:49浏览次数:27  
标签:返回 java Object equals toString true public

java Object类


Object包含了9大常用方法:
getClass()
hashcode()
toString()
equals()
finalize()

notify()
notifyAll()
wait()
clone()


   一、toString()
   方法摘要

   public String toString():返回该对象的字符串表示。

   toString方法返回该对象的字符串表示,其实该字符串内容就是:对象的类型名+@+内存地址值。

   查看源码:

1     public String toString() {
2 
3         return getClass().getName() + "@" + Integer.toHexString(hashCode());
4 
5     }

由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

比如:

 

 1     public static class Student {
 2 
 3         public String name;
 4         public Integer age;
 5 
 6         public Student(String name, Integer age) {
 7             this.name = name;
 8             this.age = age;
 9         }
10 
11         @Override
12         public String toString() {
13             return "Student{" + "name='" + name + "'" + ", age=" + age + '}';
14         }
15     }

   二、equals()

   方法摘要:
   public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。
   调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的。

 

   查看源码:

1     public boolean equals(Object obj) {
2 
3         return (this == obj);
4 
5     }

   可以看出,Object类中的equals()方法也是比较引用是否相同。那么,想要比较值是否相同,该怎么办呢?这就需要重写equals()。

   重写equals),要注意以下几点注意事项:

   1) 对任意x,x.equals(x)一定返回true

   2)对任意x,y,如果x.equals(y)返回true,则y.equals(x)也一定返回true

   3)对任意x,y,z,如果x.equals(y)返回true,y.equals(z)也返回true,则x.equals(z)也一定返回true

   4)对任意x,y,如果对象中用于比较的信息没有改变,那么无论调用多少次x.equals(y),返回的结果应该保持一致,要么一直返回true,要么一直返回false

   5)对任意不是null的x,x.equals(null)一定返回false

 

 

标签:返回,java,Object,equals,toString,true,public
From: https://www.cnblogs.com/hld123/p/18051529

相关文章

  • 实现Java校验是否是金额的方法
    概述在Java中,校验是否是金额的方法通常需要考虑金额的格式和大小。下面我将介绍给你一个简单的实现方法,帮助你判断输入的字符串是否符合金额的格式。 流程首先,我们可以分为以下几个步骤来实现校验是否是金额的方法:判断字符串是否为null或空字符串判断字符串是否为合法的金额格......
  • 了解JavaScript 调用堆栈
    每个javascript执行环境都有一个调用堆栈。该调用堆栈用于跟踪函数调用。堆栈是一种后进先出(LIFO)的简单数据结构。我们可以从堆栈中取出的顶部元素是我们压入堆栈的最后一个元素。对于JavaScript调用堆栈,这些元素是函数引用。由于JavaScript是单线程的,因此只有一个堆......
  • 根据java已经定义好的Class生成DDL SQL
    packagecom.ai.exchange.generator;importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableField;importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotation.TableName;import......
  • 「Java开发指南」MyEclipse如何支持Spring Scaffolding?(四)
    在上文中主要为大家介绍了应用程序分层、代码助手等内容,本文将继续介绍SpringDSL模型等。MyEclipsev2023.1.2离线版下载MyEclipse技术交流群:742336981欢迎一起进群讨论5.SpringDSL模型支持Spring的MyEclipse还有一个特性,它是面向那些希望通过使用抽象层(模型驱动开发)来......
  • Java编程的利器:Pair和Triple无缝解决多值返回问题,助力编写高效代码
    在实际编码中,经常会遇到一个方法需要返回多个值的情况,你编写一个方法,需要同时返回某个操作的结果和一些相关的附加信息。使用传统的方式,你可能需要创建一个包含这些信息的自定义类或者使用集合(如Map)来存储这些值。然而,这往往使得代码变得臃肿,而且对于调用方来说,理解和提取这些值......
  • Java 21 终于对这些功能动刀了!!
    来源:https://medium.com/@benweidig尽管Java是我使用过的向后兼容程度最高的语言和环境之一,但始终存在功能弃用甚至删除的可能性。Java21将弃用两个功能,这就是我们今天要讨论的内容。推荐一个开源免费的SpringBoot实战项目:https://github.com/javastacks/spring-boot-b......
  • 9_dynamic动态类型与object类型的区别
    C#中dynamic动态类型与object类型的区别1.object类型object类型是.NET中System.Object类的别名。在C#中,所有类型(预定义、用户定义、引用类型、值类型)都直接或间接继承自Object。因此,我们可以将任何类型的值用object对象来接收。2.dynamic动态类型动态......
  • "金三银四"挑战来袭:独家揭秘大厂Java面试真题,让你秒变求职战神!错过等一年!
    哈喽,欢迎来到【程序视点】,我是小二哥!前言随着"金三银四"求职高潮的到来,Java岗位的竞争变得前所未有的激烈。今天就给大家分享一份大厂Java面试真题!尤其是在目前的行业环境下,成千上万的开发者早就摩拳擦掌,投身于这场没有硝烟的竞争中了,但只有准备充足的人才能够脱颖而出,拿到心仪......
  • 「java.util.concurrent并发包」之 AQS
    AQS的原理是什么?AQS核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是用CLH队列锁实现的,即将暂时获取不到锁的......
  • Java 辨析之实例化和初始化
    在面向对象编程中,实例化和初始化是两个相关但不同的概念:实例化(Instantiation):实例化是指创建一个类的新的具体对象的过程。当程序运行时,通过new关键字调用类的构造函数来创建该类的一个实例。例如,在Java中:MyClassmyObject=newMyClass();在这行代码中,newMyClass()就是......