如果我在文件上有更多的类,Java是否需要一个公共类?

时间:2015-05-28 14:09:19

标签: java class public

如果我在.java文件上编写多个类,我是否至少需要一个公共类?

但如果我有一个以上没有任何公开的课程,它会编译。

class A {
    int x=1;
    int y=2;
    void m1(int i){
        System.out.println("i="+i);
    }
}

class B extends A{
    void m1(int i){
        System.out.println("i="+i);
    }
}

class test{
    public static void main(String args[]){
        A a1=new A();
        B b1=new B();

        System.out.println(b1.x);

        System.out.println(a1.y);
        //System.out.println(A.y);

        a1.m1(4);
    }
}

4 个答案:

答案 0 :(得分:5)

不,您不需要在任何源文件中都有公共类。

每个源文件最多只能一个公共类。但是,每个源文件不需要至少一个公共类。

答案 1 :(得分:1)

我个人的偏好是每个文件放一个类,主要用于阅读目的。每个文件只能有一个类是公共的,但是您可以拥有尽可能多的其他类,其访问限制较少。另外,看看嵌套类可能就是你想要做的事情。

看看这个: How many classes should a programmer put in one file?

答案 2 :(得分:0)

公共类必须在具有相同名称的.java源文件中实现,非公共类可以驻留在具有其他名称的源文件中。

答案 3 :(得分:0)

java language specification州:

  

访问修饰符public(第6.6节)仅适用于顶级类(第7.6节)和成员类(第8.5节),不适用于本地类(第14.3节)或匿名类(第15.9.5节)。 p>