当前位置: 首页 > 面试题库 >

Java的构造函数和新运算符

宰父淳
2023-03-14
问题内容

要从StudentJava 类中创建新对象,通常使用以下语句

Student std = new Student();

我读过new运算符通过在堆中分配内存空间来创建新对象,但是我也读到调用构造函数Student()会创建它。因此,这有点令人困惑。哪一个在创建对象std?是
运算符还是默认构造函数?


问题答案:

具有与类同名的方法是合法的(尽管令人困惑),new消除了任何歧义。new指示JVM应该为给定的类和参数列表调用实例初始化方法,并返回已初始化的对象(在初始化方法的第一个(隐藏)参数中引用)。

Java的设计人员可能已经找到了另一种语法,但是他们的设计目标是,每次在堆上分配内存时,都应该通过要求关键字显式地调用它new。现在看来这似乎很奇怪,但是Java的大多数目标受众是怀疑垃圾回收的C和C
++程序员,这是为了确保开发人员不会在没有知识的情况下分配内存。



 类似资料:
  • 本文向大家介绍Java构造函数,包括了Java构造函数的使用技巧和注意事项,需要的朋友参考一下 构造函数与方法相似,但在以下方面有所不同。 它们没有任何返回类型。 构造函数的名称与类的名称相同。 每个类都有一个构造函数。如果我们未为类明确编写构造函数,则Java编译器将为该类建立默认构造函数。 每次创建一个新对象时,将至少调用一个构造函数。 一个类可以具有多个构造函数。 示例 输出结果

  • 实际上,我不明白无参数构造函数和默认构造函数的区别是什么。 在创建名为cFrame的Test对象时,是否调用此类的默认构造函数?

  • 所以,我正在做一个家庭作业,我很难遵循一些指示,我把作业贴在下面: 创建一个由五个类组成的层次结构,加上一个作为变量包含在里面的类: Person有四个字符串变量:姓名,地址,电话,电子邮件 学生是Person的子类,有一个额外的int变量状态,其值为1,2,3或4,代表大一,大二,大三,大四 MyDate有三个int变量,分别为年、月和日 员工是Person的子类,有一个String变量offi

  • 我用java编写这个简单的类只是为了测试它的一些特性。 0 那么为什么当我在构造函数方法声明中使用时,类的静态字段不再改变了呢?

  • 问题内容: 我开始学习JAXB,所以我的问题可能很愚蠢。现在我有了类,想要生成XML Schema。在执行此指令后,我得到了异常 IllegalAnnotationExceptions …没有无参数的默认构造函数。 是的 我的课程没有默认的无参数构造函数。太容易了 我有类与包可见的构造函数/ final方法和偏离路线的参数。我应该怎么做-创建一些特定的momemto / builder类或将我的构

  • 问题内容: 其实我不明白,无参数构造函数和默认构造函数有什么区别。 创建名为cFrame的Test对象时,这是否调用此类的默认构造函数? 问题答案: 该构造函数是一个无参数的构造函数,代表您的Java编译器插入; 它包含对(not )的调用,这是默认行为。如果实现任何构造函数,则不再收到默认的构造函数。 JLS-8.8.9。默认构造函数说(部分), 如果一个类不包含构造函数声明,则隐式声明一个没有