JAVA 复习笔记(一)公共类在一个file下只能有一个

一、关于编译器提示错误The public type ress1 must be defined in its own file的原因


新手容易犯错的地方

publicclassTest{
       public static void main(String args[]){
              newB();
       }
}
public classA {
       public A(){
              System.out.println("I am A" );
       }
       {System.out.println("A");}
       static{System.out.println("static A");}
}

public class B extends A{
       public B(){
              System.out.println("I am B" );
       }
       {System.out.println("B");}
       static{System.out.println("static B");}
}


编译器提示错误,提示A类和B类应该定义在自己的文件之中。可是我明明记得是可以在一个文件之中写多个类,然后通过上网搜索,发现是可以在一个java文件中编写

多个类,不过只能有一个public所修饰的类,所以将A和B类前的public修饰符去掉即可,最终代码如下:


public class Test{
        public static void main(String args[]){
               new B();
       }
}
class A {
        public A(){
              System. out.println("I am A" );
       }
       {System. out.println("A");}
        static{System.out .println("static A");}
}

class B  extends  A{
        public B(){
              System. out.println("I am B" );
       }
       {System. out.println("B" );}
        static{System.out .println("static B");}
}

1、如果类A被声明为公共的(public),那么必须将类A保存在名为A.java的文件中;

2、反之,在一个文件中最多包含一个顶级的公共类,并且该公共类的名字与文件名相同。比如文件A.java中,允许定义一个或多个类,但最多允许一个顶级的公共类,此类名为A。此处强调的顶级的意思是,允许非顶级的公共类存在,如内部公共类等。



猜你喜欢

转载自blog.csdn.net/qq_37457202/article/details/80590993
今日推荐