如果“构造函数”在我们创建对象时分配内存并初始化实例变量,那么我们为什么要说 Object o = new Object();
?
为什么不只是 Object o = Object();
?
new 运算符实际上做了什么?
最佳答案
构造函数仅初始化预先存在的对象。区分构造函数和方法调用的方法是使用 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
new
关键字的作用是明确何时创建新对象。
顺便说一句,您可以有一个工厂方法,按照您的建议返回一个新对象,但是将其明确化可能会被认为更清楚它实际在做什么。
关于java - Java 中 'new' 运算符的真正意义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41569642/