服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - JAVA教程 - java基础之Object类

java基础之Object类

2019-12-21 14:58hebedich JAVA教程

这篇文章主要介绍了java基础之Object类 的相关资料,需要的朋友可以参考下

Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来。

定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类。例如:

?
1
2
3
public class Demo{
  // ...
}

实际上是下面代码的简写形式:

?
1
2
3
public class Demo extends Object{
  // ...
}

在Java中,只有基本类型不是对象,例如数值、字符和布尔型的值都不是对象,所有的数组类型,不管是对象数组还是基本类型数组都是继承自 Object 类。

Object 类定义了一些有用的方法,由于是根类,这些方法在其他类中都存在,一般是进行了重载或覆盖,实现了各自的具体功能。

equals() 方法

Object 类中的 equals() 方法用来检测一个对象是否等价于另外一个对象,语法为:
    public boolean equals(Object obj)
例如:

 

复制代码 代码如下:

obj1.equals(obj2);

 

在Java中,数据等价的基本含义是指两个数据的值相等。在通过 equals() 和“==”进行比较的时候,引用类型数据比较的是引用,即内存地址,基本数据类型比较的是值。

注意:

•equals()方法只能比较引用类型,“==”可以比较引用类型及基本类型。
•当用 equals() 方法进行比较时,对类 File、String、Date 及包装类来说,是比较类型及内容而不考虑引用的是否是同一个实例。
•用“==”进行比较时,符号两边的数据类型必须一致(可自动转换的数据类型除外),否则编译出错,而用 equals 方法比较的两个数据只要都是引用类型即可。

hashCode() 方法

散列码(hashCode)是按照一定的算法由对象得到的一个数值,散列码没有规律。如果 x 和 y 是不同的对象,x.hashCode() 与 y.hashCode() 基本上不会相同。

hashCode() 方法主要用来在集合中实现快速查找等操作,也可以用于对象的比较。

在 Java 中,对 hashCode 的规定如下:

•在同一个应用程序执行期间,对同一个对象调用 hashCode(),必须返回相同的整数结果——前提是 equals() 所比较的信息都不曾被改动过。至于同一个应用程序在不同执行期所得的调用结果,无需一致。
•如果两个对象被 equals() 方法视为相等,那么对这两个对象调用 hashCode() 必须获得相同的整数结果。
•如果两个对象被 equals() 方法视为不相等,那么对这两个对象调用 hashCode() 不必产生不同的整数结果。然而程序员应该意识到,对不同对象产生不同的整数结果,有可能提升hashTable(后面会学到,集合框架中的一个类)的效率。

简单地说:如果两个对象相同,那么它们的 hashCode 值一定要相同;如果两个对象的 hashCode 值相同,它们并不一定相同。在 Java 规范里面规定,一般是覆盖 equals() 方法应该连带覆盖 hashCode() 方法。

toString() 方法

toString() 方法是 Object 类中定义的另一个重要方法,是对象的字符串表现形式,语法为:
    public String toString()
返回值是 String 类型,用于描述当前对象的有关信息。Object 类中实现的 toString() 方法是返回当前对象的类型和内存地址信息,但在一些子类(如 String、Date 等)中进行了 重写,也可以根据需要在用户自定义类型中重写 toString() 方法,以返回更适用的信息。

除显式调用对象的 toString() 方法外,在进行 String 与其它类型数据的连接操作时,会自动调用 toString() 方法。

以上几种方法,在Java中是经常用到的,这里仅作简单介绍,让大家对Object类和其他类有所了解,详细说明请参考 Java API 文档。

以上所述就是本文的全部内容了,希望大家能够喜欢

延伸 · 阅读

精彩推荐
  • JAVA教程学习Java设计模式之观察者模式

    学习Java设计模式之观察者模式

    这篇文章主要为大家介绍了Java设计模式中的观察者模式,对Java设计模式感兴趣的小伙伴们可以参考一下...

    BetterLaterThanNever3642019-06-16
  • JAVA教程JavaEE中关于ServletConfig的小结

    JavaEE中关于ServletConfig的小结

    ServletConfig是针对特定的Servlet的参数或属性。ServletConfig是表示单独的Servlet的配置和参数,只是适用于特定的Servlet。从一个servlet被实例化后,对任何客户端...

    hebedich1802019-12-02
  • JAVA教程Java实现实时监控目录下文件变化的方法

    Java实现实时监控目录下文件变化的方法

    今天小编就为大家分享一篇关于Java实现实时监控目录下文件变化的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    梦幻逝水1952019-06-21
  • JAVA教程Java中使用Preconditions来检查传入参数介绍

    Java中使用Preconditions来检查传入参数介绍

    这篇文章主要介绍了Java中使用Preconditions来检查传入参数介绍,本文只是作为一个简单的用法介绍,需要的朋友可以参考下 ...

    junjie4232019-12-21
  • JAVA教程javax.mail.SendFailedException: Sending failed问题原因

    javax.mail.SendFailedException: Sending failed问题原因

    这篇文章主要介绍了javax.mail.SendFailedException: Sending failed问题原因,需要的朋友可以参考下 ...

    junjie3472019-12-17
  • JAVA教程Java基础教程之实现接口

    Java基础教程之实现接口

    这篇文章主要介绍了Java基础教程之实现接口,也可以说是实施接口,因为接口只是定义,最终要实现它,本文就专门讲解接口的实现,需要的朋友可以参考下 ...

    junjie3492019-11-27
  • JAVA教程Java嵌套类和内部类详解

    Java嵌套类和内部类详解

    这篇文章主要介绍了Java嵌套类和内部类详解,本文讲解了什么是嵌套类及内部类、静态嵌套类、在外部类中定义内部类、在方法中定义内部类、匿名内部类...

    junjie1482019-12-17
  • JAVA教程java截取图片示例

    java截取图片示例

    这篇文章主要介绍了java截取图片示例,把代码中的图片路径改成自己的图片,运行就可以看到效果了,需要的朋友可以参考下 ...

    java教程网2092019-11-12