gpt4 book ai didi

javac 使用默认访问修饰符编译类,即使文件名不同

转载 作者:行者123 更新时间:2023-11-30 09:20:16 27 4
gpt4 key购买 nike

为什么 javac 使用默认修饰符编译类,即使文件名不同,为什么当访问修饰符是 public、private 或 protected 时却不编译?例如:文件名:测试 文件内容 foo 类{}

它的编译没有错误,如果我在类的前面添加公共(public)的、私有(private)的或 protected ,它就不会被编译,谁能解释为什么会这样

最佳答案

有两条规则

  • 如果您将类型声明为public,那么文件名应该相同,类型可以是classinterface
  • 不能有 privateprotected 外部类。

为什么第一点的答案是它是定义 Java 规范的方式。您不能将外部类声明为私有(private)的,因为它根本没有任何用途。

  • 源文件中可以有任意类型,但只能有一个公共(public)类型,如果有公共(public)类型,文件名必须与公共(public)类型相匹配。

关于javac 使用默认访问修饰符编译类,即使文件名不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17495339/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com