JAVA中public class 和class的区别

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文件
编译出来的A,B,C,Dclass文件
这说明了另外一个问题:
没有public修饰的class,名字可以不和文件名一致;
一个java文件可以包含多个class,但是public class只能有一个,当然也可以没有public class;
每个类在编译后都会生成一个class文件

3.总结

1.一个java文件可以没有public修饰的类。但如果有的话,只能有一个,并且文件名需要和类名一致。

2.一个java文件可以有多个类,编译后每个类都会生成一个class文件,使用术语来说就是字节码文件

3.下面是补充内容,如果初学阶段不知道什么意思可以不用理解,学到后面自然会知道。
1.字节码文件是由JVM(java虚拟机)编译java文件而来,里面是一些可以由CPU直接识别的二进制的机器语言。
2. 我们都说JAVA具有很好的移植性,跨平台能力比较强,这正是由于JVM把JAVA文件编译成class文件。对于源代码来说,无论什么操作平台(系统,比如windows,linux,unix),只要装上了JRE(Java Runtime Environment,java运行环境),就能运行java文件。

好了,这就是今天份public class和class的区别。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值