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

为什么在Java的一个文件中不能定义两个公共类?

胥良平
2023-03-14
问题内容

为什么B类无法公开?如何在其他班级使用班级?在Cons中定义它更好吗?

   //    public class B { why not?

   class B {
        int x;  
        B (int n) {
            x=n;
            System.out.println("constructor 'B (int n)' called!");
        }
    }

    public class Cons { 
        public static void main(String[] args) {B b = new B();}
    }

问题答案:

根据Java语言规范,文件(.java)中只能有一个公共类,并且文件名应与公共类名相同。

如果希望在其他地方访问B类,则可以创建一个单独的B.java文件,然后将B类代码移至该文件。

该线程可以为您提供更多信息。



 类似资料:
  • 问题内容: 好的,这可能是java中的小问题。我们不能在一个文件中定义两个公共类。但是,在《 SCJP学习指南》一书的示例中,提到了以下示例: 当我将其复制粘贴到netbeans中时,立即引发了编译错误,该公共类A应该在单独的文件中提及。SCJP stdydy指南中的示例真的错误吗?同样在一些模拟测试中,我发现许多问题都具有这种模式,但是在所有选项中都没有提到编译器错误。在这里担心 问题答案: 是

  • 问题内容: 我最近开始学习Java,发现每个Java类都必须在单独的文件中声明非常奇怪。我是C#程序员,C#并没有实施任何此类限制。 Java为什么要这样做?有设计上的考虑吗? 编辑(基于几个答案): 为什么在IDE时代Java现在不取消此限制?这不会破坏任何现有代码(或者会破坏吗?)。 问题答案: 根据Java语言规范,第三版: 这种限制意味着每个编译单元最多只能有一个这样的类型。 这种限制使J

  • 以下是输出信息: 线程“main”java.lang.noClassDeffounder:top/example/study/testclass(名称错误:top/example/study/testclass)在java.base/java.lang.classloader.defineclass1(本机方法)在java.base/java.lang.classloader.defineclas

  • 我来到阿克罗斯,问了一个问题:为什么Java文件中只有一个公共类 答案是这样的: 要了解这些限制背后的基本原因,让我们假设编译器不会因为将文件名命名为与公共类名相同而导致编译错误。 假设有一个包a 文件1.java 现在我们知道,公共类也可以在包之外访问,现在让外部世界访问它将成为开发人员的责任。让我们看看如何: 假设包A只包含Java文件(没有类文件),包A之外的某个类尝试访问公共类file3,

  • 在将Eclipse项目导入Android Studio之后,我看到了两个文件: 第一个版本较短,第二个版本包含等的定义。

  • 问题内容: 在Java中,文件名应与该文件中包含的文件名相同。为什么会有限制?它有什么作用? 问题答案: Java有一个有趣的方法:给程序员一个选择只能降低编程经验,而不必选择。 他们在很多地方都这样做。确保使用文件名和软件包,但不允许在文件中使用多个公共类(从来没有),不允许您在文件之间拆分类(该死,很难使用!),等等。 我真的希望他们走得更远。没有理由使用公共变量:我从来不需要一个变量,也从未