Java编程之Object类

举报
魏铁锤 发表于 2022/09/20 22:34:44 2022/09/20
1.1k+ 0 0
【摘要】 Object类是所有类的直接父类或间接父类,当一个类没有继承一个父类的时候,那么他 就继承了object,class A没有继承Object类,那么系统会默认让他继承Object类,class B 继承类A,那么我们这个object类呢,就可以去引用所有的类。 Object o1=new A()创建一个a类的对象,引用a对象,Object o2=new B()引用第

object类的概念

  • java.long.Object是Java中所有类的直接父类或者间接父类
  • class A{}
  • class B extends A{}
  • 所有类的对象都可以声明成Object引用
  • Object o1=new A();
  • Object o2=new B();

解析

    Object类是所有类的直接父类或间接父类,当一个类没有继承一个父类的时候,那么他
就继承了object,class A没有继承Object类,那么系统会默认让他继承Object类,class B
继承类A,那么我们这个object类呢,就可以去引用所有的类。
    Object o1=new A()创建一个a类的对象,引用a对象,Object o2=new B()引用第二个对象,
Object的子类继承了Object的方法,比较常用的三种方法,第一个是getClass()方法,第二个是
equals()方法,第三个是toString()方法。

getClass方法:返回一个对象的实际类型

编写类的继承关系
class Animal{}
class Dog extends Animal{}
class Courser extends Dog{}

在测试类中观察运行结果
Dog d=new Dog();
Dog c==new Courser();
System.out.println(d.getClass()==c.getClass());
final方法,返回Class类型的对象,反射来获取对象。

finalize()

该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。

hashCode()

该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。
这个方法在一些具有哈希功能的Collection中用到。

wait()

wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。
wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定
时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
  1. 其他线程调用了该对象的notify方法。
  2. 其他线程调用了该对象的notifyAll方法。
  3. 其他线程调用了interrupt中断该线程。
  4. 时间间隔到了。

此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。

notify()

该方法唤醒在该对象上等待的某个线程。

notifyAll()

该方法唤醒在该对象上等待的所有线程

总结
通俗的讲Object类是爹,是所有类的父亲。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。