从类创建新对象Student
在Java中我们通常使用以下语句
Student std = new Student();
我读过 new 运算符通过在堆中分配内存空间来创建新对象,但是我还读到调用构造函数Student()
创建它。
所以,这有点令人困惑。哪一个正在创建对象std
?是不是new运算符还是默认构造函数?
拥有与类同名的方法是合法的(尽管令人困惑),new
消除任何歧义。new
表明 JVM 应该调用实例初始化方法 http://www.artima.com/designtechniques/initializationP.html对于给定的类和参数列表,并返回初始化的对象(在初始化方法的第一个(隐藏)参数中引用)。
Java 的设计者可能已经找到了替代语法,但他们有一个设计目标,即任何时候在堆上分配内存时都应该通过需要关键字来显式调用new
。现在这可能看起来很奇怪,但 Java 的大多数目标受众是对垃圾收集持怀疑态度的 C 和 C++ 程序员,这是为了确保开发人员不会在他们不知情的情况下分配内存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)