Java中"新"运算符的真正含义是什么?

Sam*_*aha 0 java

如果'构造函数'在我们创建对象时分配内存并初始化实例变量,那么为什么要说  Object o = new Object();?为什么不  Object o = Object();呢? 

新运营商究竟做了什么?

Pet*_*rey 5

构造函数仅初始化预先存在的对象.告诉构造函数和方法调用之间区别的方法是new关键字.例如,您可以Object在类中调用一个方法,Object但这可能不会创建任何内容.当你有子类时,这更令人困惑.

class A {
    A() { } // constructor
    static A A() { return new A(); } // method
    static A B() { return new A(); } // method
}

class B extends A {
    B() { }
}

A b = new B(); // creates a B
A a = B.B(); // creates an A
Run Code Online (Sandbox Code Playgroud)

该点new的关键字是要清楚创建一个新的对象时.

顺便说一下你可以有一个工厂方法,按照你的建议返回一个新对象,但是要明确它可能会被认为更清楚它实际上在做什么.