为什么要文件名和类名一样php_java文件名为什么要与类名相同

本文介绍了Java编程中的类加载机制,强调了public类与源文件名的一致性要求,以及非public类的作用。Java在运行时按需加载class文件,并且每个源文件最多只能有一个public类。非public类作为支撑类,不对外公开。同时,main方法并不限定在public类中,但必须是public修饰的。理解这些规则对于有效管理和组织Java项目至关重要。
摘要由CSDN通过智能技术生成

详细内容

因为: Java是被解释执行的。它在运行时并不是将所有的class文件全都放到内存中。而是在遇到import的时候才去相应的文件目录找相应的class文件。

b26f76d00c0ed5b51dc93251d1b01c29.png

对于一个public类,它是可以被项目中任何一个类所引用的,只需在使用它前import一下它所对应的class文件即可。将类名与文件名一一对应就可以方便虚拟机 在相应的路径(包名)中找到相应的类的信息。如果不这么做的话,就很难去找,而且开销也会很大。

总结:

一个源文件(.java)里,没有用public修饰的类也可以和文件名一致。

一个源文件中可以存在类名和文件名不一致的情况,但不能用public修饰.

如果一个包内不存在public修饰的类的话,那么我想这个包我觉得没有什么意义,因为不能为”客户程序员”提供接口,即使没有用public修饰的类里面含有public修饰了的静态方法,”客户程序员”也没有权限访问。

源文件没有用public修饰的类主要是为public修饰的类”支撑”。

最好不要在一个.java的源文件里写很多的类.

main方法不一定要在public修饰了的类下才能执行。但是main方法必须是public修饰的

《Thinking in Java》解释:为Java创建一个源码文件的时候,它通常叫作一个“编辑单元”(有时也叫作“翻译单元”)。每个编译单元都必须有一个以.java结尾

的名字。而且在编译单元的内部,可以有一个公共(public)类,它必须拥有与文件相同的名字(包括大小写形式,但排除.java文件扩

展名)。如果不这样做,编译器就会报告出错。每个编译单元内都只能有一个 public类(同样地,否则编译器会报告出错)。那个编译

单元剩下的类(如果有的话)可在那个包外面的世界面前隐藏起来,因为它们并非“公共”的(非public),而且它们由用于主public

类的“支撑”类组成。编译一个.java文件时,我们会获得一个名字完全相同的输出文件;但对于.java文件中的每个类,它们都有一个.

class扩展名。因此,我们最终从少量的.java文件里有可能获得数量众多的.class文件。如以前用一种汇编语言写过程序,那么可能已

习惯编译器先分割出一种过渡形式(通常是一个.obj文件),再用一个链接器将其与其他东西封装到一起(生成一个可执行文件),或

者与一个库封装到一起(生成一个库)。但那并不是Java的工作方式。一个有效的程序就是一系列.class文件,它们可以封装和压缩到

一个JAR文件里(使用Java1.1提供的jar工具)。Java解释器负责对这些文件的寻找、装载和解释(注释①)。

①:Java并没有强制一定要使用解释器。一些固有代码的Java编译器可生成单独的可执行文件。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值