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

编译器生成的默认构造函数将是公共的吗?

冯鸿光
2023-03-14
问题内容

当我写课时 Widget.java

public class Widget {
    int data;
    String name;
}

编译器生成的构造函数是 public 还是 default

公众会喜欢

public class Widget {
    int data;
    String name;
    public Widget() {}
}

而默认类似于

public class Widget {
    int data;
    String name;
    Widget() {}
}

问题答案:

这取决于您的 类可见性* 。编译器使用类可见性并生成具有 相同可见性 的无参数默认构造函数 *



 类似资料:
  • 样本1 样本2 我对第一个示例如何编译和传递静态断言感到困惑,而第二个示例未能按照constexpr defaulted default constructor中提到的编译,错误为。 尝试阅读以下内容,但无法理解第一个是如何工作的,另一个是如何工作的。http://eel.is/c草案/类别。ctor#类。违约ctor-4 默认的构造函数是默认的,并且没有被定义为删除,当它被odr使用([basi

  • 我的问题是关于OOP(C)中的构造函数。当我在一个类中将默认构造函数定义为private,并且在main中将该类的一个对象初始化为default时,就会出现默认构造函数不可访问的错误。这很好。但我也在Public部分中使用默认参数构造函数,当我再次在main中初始化对象时,就会出现对函数重载的不明确调用。所以我的问题是,如果不能从main访问私有构造函数,那么编译器应该调用公共部分中的构造函数,这

  • 问题内容: 我的一项作业需要一个银行帐户才能从支票和储蓄帐户转帐资金。交易存储在ArrayList中,并设置为用户指定何时转移资金。用于支票和储蓄的银行帐户类可以正常工作,但是我创建的TransferService类在NetBeans中不能正确编译。 这些提示似乎无法解决错误。我得到错误: 事务是抽象的,无法实例化。 我该如何解决这个问题? 问题答案: 构造函数没有返回类型。所以不 反而 关于,

  • 问题内容: 用于java.io.FileDescriptor.FileDescriptor()的 JavaDoc 说: 构造一个(无效的)FileDescriptor对象。 如果构造函数没有目的,为什么它的访问级别未声明为 package-private ? 问题答案: 此构造函数是公共的,因为它在之外使用。 在JRE 7u4 Linux x86中使用的类: 有一种方法允许程序员将a的状态更改为有

  • 问题内容: 我知道我在这里问一些严重的101问题… 我有一些课,还有一个延伸课。在我有一个构造函数,它接受一组参数,并对其字段进行设置。派生类(例如)通常不需要进行修改。现在我的IDE给我 “ Foo中没有默认的构造函数” 。从一点点谷歌搜索,这似乎是因为“构造函数没有继承”。因此,一切都很好,但是我现在如何使它工作而不在每个派生类中复制此构造函数?我假设有一个更合理的方法? 问题答案: 使用构造

  • 问题内容: 默认构造函数到底是什么?你能告诉我以下哪个是默认构造函数,它与其他构造函数有何不同? 问题答案: 他们都不是。如果定义,则不是默认值。 除非你定义另一个构造函数,否则默认构造函数是自动生成的无参数构造函数。任何未初始化的字段都将设置为其默认值。对于你的榜样,它看起来像这样假设的类型String,int以及int,那类本身是公共的: 这与 完全没有构造函数。但是,如果定义至少一个构造函数