如果'构造函数'在我们创建对象时分配内存并初始化实例变量,那么为什么要说 Object o = new Object();
?为什么不 Object o = Object();
呢?
新运营商究竟做了什么?
构造函数仅初始化预先存在的对象.告诉构造函数和方法调用之间区别的方法是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
的关键字是要清楚创建一个新的对象时.
顺便说一下你可以有一个工厂方法,按照你的建议返回一个新对象,但是要明确它可能会被认为更清楚它实际上在做什么.