有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java对象类型的对象对什么有用

我在SCJP书中看到了下面的代码练习题

Object obj = new Object();

首先,我认为这可能是一个错误,因为我没有使用这样的语句。现在我明白这是一个有效的声明

我只是想知道这有什么实际用途。使用Object类型的对象(而不是从Object派生的类)做什么


共 (4) 个答案

  1. # 1 楼答案

    使用新操作符,可以为对象分配内存,并调用其构造函数。 通常,创建对象类的实例在日常编码中不会出现太多。同样重要的是要知道,您创建的每个类都是从对象扩展而来的

  2. # 2 楼答案

    例如,它可用于同步:

    synchronized (obj) {
       ... 
    }
    
  3. # 3 楼答案

    代码声明了一个类型为Object的引用,并为其分配了一个新分配的Object实例

    现在,类Object的实例可能看起来毫无意义。然而,它们确实有实际用途。其中一个用途是锁定:

    ...
    synchronized (obj) {
       ...
    }
    ...
    
  4. # 4 楼答案

    实际使用并不常见(NPE answer就是一个例子),但由于每个类都继承自Object,因此当您调用其构造函数时,Object类的构造函数将在某个时间被隐式调用,因此您将需要构造新对象的能力

    public class Foo {   // implicitly inherits from Object
        public Foo() {
            super(); // Object default constructor call
        }
    }
    
    public class Bar extends Foo {
        public Bar() {
            super(); // Foo default constructor call
        }
    }
    
    Bar b = new Bar();  // new Bar() calls new Foo() that calls new Object()
    

    需要注意的是,super()(超类构造函数)的调用将由编译器隐式插入