ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Java中类名与文件名的关系

Java中类名与文件名的关系

原创 Linux操作系统 作者:ForTechnology 时间:2012-01-31 14:42:41 0 删除 编辑
Java中类名与文件名的关系
一个 .java 文件,可以有多个类(最多有一个添加public修饰符,其他的类不能添加private之类的修饰
符),但是文件名只能有一个,用哪一个类名来充当文件名呢?

其实文件名是无所谓的,因为将来用 javac 进行编译的时候,最终会生成多个 .class 文件,每一个类
对应个 .class 文件。运行时只要运行对应的 .class 文件就可以了,这时 .java 文件就显得没什么用
了( 运行时不需要 ),那还管它叫什么名字。

但是当你的类被 public 修饰时,此时文件名必须和该类保持一致(例如 public class A{} 只能放在
 A.java 文件中,不然在用 javac 编译时会提示错误:类 A 是公共的,应在名为 A.java 的文件中声明)。
也就是说在同一个 .java 文件中,不应该出现2个或2个以上的 public class 。如果有一个public cl
ass类,就应该让文件名和此类名相同;那如果没有呢,即所有的 class 都没有修饰符,那么可以给该
文件随便
起名字,甚至可以不和任意一个类同名,哪怕是汉字名称都可以,但是后缀还是要有.java 的 ( 哈哈,
不信就试试 ) 。

注:有很多初学者 ( 我也是 ) 可能会认为文件名应该也和 main 方法所在类有关系,其实不然。ma
in 方法只是程序的一个入口,老师讲“一个程序只能有一个入口”,好象是在说只能有一个 main 方法
,其实,只要你高兴,就可以在所有类里都写上 main 方法,给程序提供N多个入口,但是最后你运行
程序的时候也只能从其中的一个入口进去,这就是 main 的作用( 程序入口 )。(这也就是为什么你会
发现,程序员在做单元测试时,会往自己做的很多类里面添加 main 方法,因为他要为自己做的东西添
加运行入口,从而能方便测试。)

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


---------------------------------------------------------------------------------------
----
-----------------------------------------------------------------------------------


问题一:如果类前面不加任何访问修饰符,则默认的访问权限是什么(可否被其它包中它的子类所访问?)
问题二:如果类成员变量前不加任何访问修饰符,其默认访问权限是什么?
问题三:如果类成员方法前不加任何访问修饰符,其默认访问权限是什么?



类、类成员没有修饰符:friendly:

只有本类和同一包中的类可以访问,其他没有访问权限


如果一个类的成员没有任何权限修饰,那么它门就是缺省包访问权限,用friendly来表示,注意frien
dly不是Java中的关键字,这里是个人喜欢的方式用它表示而已。同一个包内其它类可以访问,但包外
就不可以。对于同一个文件夹下的、没有用package的classes,Java会自动将这些classes初见为隶属
于该目录的defaultpackage,可以相互调用class中的friendly成员。如两个class分别在同一个文件
夹的两个文件中,虽然没有引入package,但隶属于相同的defaultpackage。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25897606/viewspace-715300/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Vi 用法
请登录后发表评论 登录
全部评论

注册时间:2011-07-21

  • 博文量
    220
  • 访问量
    656411