java一个文件两个class_一个Java文件中可以定义多个Class么?

一个Java文件可以定义多个Class么 ?

答案肯定是可以的。

下面我们测试一下:

//Test.java

class A {}

class B {}

class C {}

class D {}

创建一个Test.java文件, 在这个文件中定义了4个类 分别是A,B,C,D。

然后在编译一下这个Test.java文件,看会发生什么?

[boardMacBook-Pro ~]$ javac Text.java

[boardMacBook-Pro ~]$

编译并没有报错,

[boardMacBook-Pro ~]$ ls

A.class B.class C.class D.class Test.java

可以看到Test.java 将被编译成4个class文件

但是事情并未结束~

我们给Test.java 其中一个类加上一个public试试?

//Test.java

public class A {}

class B {}

class C {}

class D {}

我们重新编译编译一下Test.java文件

[boardMacBook-Pro ~]$ rm -rf *.class

[boardMacBook-Pro ~]$ javac Text.java

Test.java:4: 错误: 类 A 是公共的, 应在名为 A.java 的文件中声明

public class A {

^

1 个错误

可以看到编译出错了, 并没有通过编译, 其实这里如果你用IDE工具的话,在编辑器内就会标注红色提示错误了!

错误的提示是,类 A 是公共的, 应在名为 A.java 的文件中声明 也就是说在java中,使用public声明的类 类名必须和文件名一致

那接下来我们将public class A 换成 public class Test 试试?

//Test.java

public class Test {}

class B {}

class C {}

class D {}

[boardMacBook-Pro ~]$ javac Text.java

[boardMacBook-Pro ~]$ ls

Test.java:4: 错误: 类 A 是公共的, 应在名为 A.java 的文件中声明

B.class C.class D.class Test.class Test.java

编译可以通过了,并声称了对应的class文件

那我们在试试,将其他的class 也声明成public呢?

//Test.java

public class Test {}

public class B {}

public class C {}

public class D {}

[boardMacBook-Pro ~]$ rm -rf *.class

[boardMacBook-Pro ~]$ javac Test.java

Test.java:6: 错误: 类 B 是公共的, 应在名为 B.java 的文件中声明

public class B {}

^

Test.java:8: 错误: 类 C 是公共的, 应在名为 C.java 的文件中声明

public class C {}

^

Test.java:10: 错误: 类 D 是公共的, 应在名为 D.java 的文件中声明

public class D {}

^

3 个错误

编译报错了,根据错误提示,我们可以理解成只要是public声明的class 必须与java源文件名称相同!

通过以上测试我们可以得出以下结论:

1,单独的java文件中可以声明多个class文件

2,public的类不是必须的

3,在Java源文件中每定义一个class在编译的时候就会生成一个对应的class文件

4,在java源文件中只能有一个使用public声明的class 并且必须与文件名相同,

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值