JAVA中public class 和class的区别
1.public class
我们先来看下public class
public class Test{
public static void main(String[] args){
System.out.pringln("这是一个public class");
}
}
这种可以说是最普通的一种类,也是我们最常见的一种类。
当我们用javac命令去编译的时候,假如类名与文件名不一致,则会报错。
我将上面的java文件命名为Tewt.java
在cmd中运行如下命令
javac Tewt.java
果不其然,报错了
错误提示为 类 Test 是公共的, 应在名为 Test.java 的文件中声明
当我们把java文件改为Test.java时
再运行一次javac命令
javac Test.java
这次并没有报任何错误,并且在文件夹中多了一个Test.class文件
这说明了一个问题:
public class的类名必须要和java文件名一致,否则无法通过编译。
因此可以推出一个java文件只能有一个public class。
否则,如果一个java文件有两个public class的话,那么文件名用其中一个类名,编译时就会报另一个类名的错。
2.class
再来看下没有public的class
我把Test.java修改成如下
class A{}
class B{}
class C{}
class D{}
javac以下
javac Test.java
您猜怎么着!编译出了4个class文件
这说明了另外一个问题:
没有public修饰的class,名字可以不和文件名一致;
一个java文件可以包含多个class,但是public class只能有一个,当然也可以没有public class;
每个类在编译后都会生成一个class文件
好了,这就是今天份public class和class的区别。