Java之 public class 和 class 的区别
兮动人
发布
于
2021-06-11 20:20:33
发布
于
2021-06-11 20:20:33
文章目录
1. public class 和 class 的区别
-
一个java源文件当中可以定义多个
class -
一个java源文件当中
public的class不是必须的 -
一个
class会定义生成一个xxx.class字节码文件 -
一个java源文件当中定义公开的类的话,
只能有一个
,并且该类名称必须和
java源文件名称一致 -
每一个
class当中都可以编写main方法,都可以设定程序的入口,向执行B.class中的main方法:java B,想执行x.class当中的main方法:java x -
注意
:当在命令窗口中执行
java Hello,那么要求hello.class当中必须有主方法。
- 没有主方法会出现运行阶段的错误:在类B中找不到主方法,请将主方法定义为: public static void main (string[]args)
案例:定义一个
ABC.java
class A{
class B{
class C{
}
-
使用
javac命令编译之后生成了三个字节码,分别是A.class、B.class、C.class。执行 :javac ABC.java,就会生成三个.class文件
在这里插入图片描述
-
通过以上的测试可以得出:一个
java源文件中可以定义多个class,并且在编译的时候一 个class会对应编译生成一个class字节码文件。还有,public的class可以没有。 -
接下来,在
ABC.java源代码中继续定义一个“公开的类 D”,请看下图
在这里插入图片描述
-
可以看到,定义公开的
类 D之后,再次编译,编译器报错了。并且提示的错误信息是: 类 D 是公共的,应在名为D.java的文件中声明。换句话说在A.java文件中定义的公共的类的名字必须是A,不能是其它名称。也间接说明在同一个java文件中公共的类只能有一个(注 意:在同一个java文件中类名不能重名)。 -
通过以上的测试可以得出:如果定义
public class的类,只能定义一个,并且要求此类名必 须和java源文件名保持一致。(这是规则记住就行)。 -
接下来,在每一个类的类体当中都定义
main方法,都写上程序的入口,看看是否可以编译和运行:
class A{
public static void main(String[] args){
System.out.println("A...");
class B{
public static void main(String[] args){
System.out.println("B...");
class C{
public static void main(String[] args){
System.out.println("C...");
public class ABC{
public static void main(String[] args){
System.out.println("ABC...");
}
-
javac ABC.java
在这里插入图片描述
-
随便从一个类中进入入口函数:
java A 、java B