2021-04-18 10:56  阅读(70)
文章分类:Java 基础教程 文章标签:JavaJava 教程
©  原文作者:w3cschool 原文地址:https://www.w3cschool.cn/java/java-class-instance.html

Java面向对象设计 - Java Object类

Java在java.lang包中有一个Object类。

所有Java类都直接或间接扩展Object类。

所有Java类都是Object类的子类Object类是所有类的超类。

Object类本身没有超类。

Object类的引用变量可以保存任何类的对象的引用。

以下代码声明对象类型的引用变量obj:

    Object obj;
    

方法

Object类有九个方法,可以在Java中的所有类中使用。

  • public String toString()
    它是实现在Object类中,我们可以自定义它。
    它返回对象的字符串表示形式。
    通常,它用于调试目的。
  • public boolean equals(Object obj)
    它在Object类中实现,我们可以自定义它。
    它用于比较两个对象的相等性。
  • public int hashCode()
    它在Object类中实现,我们可以自定义它。
    它返回对象的哈希码(整数)值。
  • protected Object clone() throws
    CloneNotSupportedException
    它不在Object类中实现,我们可以通过覆盖克隆方法来自定义它。
    它用于创建对象的副本。
  • protected void finalize() throws Throwable
    它不是在Object类中实现,我们可以自定义它
    它在对象被销毁之前被垃圾收集器调用。
  • public final Class getClass()
    它在Object类中实现,我们不能自定义它。
    它返回对对象的Class对象的引用。
  • public final void notify()
    它是在Object类中实现的,我们不能自定义它。
    此方法通知对象的等待队列中的一个线程。
  • public final void notifyAll()
    它是在Object类中实现的,我们不能自定义它。
    此方法通知对象的等待队列中的所有线程。
  • public final void wait() throws InterruptedException
    public final void wait(long timeout) throws InterruptedException
    public final void wait (long timeout, int nanos) throws InterruptedException
    它是在Object类中实现的,我们不能自定义它。
    使对象的等待队列中的线程等待,无论是否超时。

例子

以下代码显示如何重新实现Object类的toString()方法。

    public class Test   {
        public String toString()  {
            return "Here  is a  string";
        }
    }
    

什么是对象类?

Java中的每个对象都属于一个类。

Object类的getClass()方法返回Class对象的引用。

以下代码显示了如何获取Cat对象的Class对象的引用:

    Cat  c  = new Cat();
    Class catClass  = c.getClass();
    

Class类是通用的,其形式类型参数是由其对象表示的类的名称。

我们可以使用泛型重写上面的语句。

    Class<Cat>   catClass = c.getClass();
    
点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Java Object类
上一篇
Java 初始化块
下一篇
Java HashCode(哈希码)