现在有个Java文件,文件名为hello.java
class
一个Java文件中可以有多个class,而且每个class还可以在前面加修饰:public,procteced,private等,不加也可以。
不同修饰符代表这个类的作用域会有区别:
作用域:
当前(父,超)类: | 同一Package: | 派生(子)类: | 其他Package: | |
public | √ | √ | √ | √ |
protected | √ | √ | √ | x |
friendly | √ | √ | x | x |
private | √ | x | x | x |
但是所有class类都是平等的,运行文件的时候回各自生成自己的class文件。
main函数
每个class内部都可以写自己的main函数,当hello.java运行的时候,要通过自己选择到底运行哪个class文件,来从谁的main函数作为程序入口。
例如在eclipse中,run---run configerations----main class,可以切换要运行的class文件。
public class
比较特殊,一个文件中只能有一个public class,不像其它的class可以任意,而且它的名字一定要与文件名hello相同。
但是不代表它的优先级别高,先运行它的main函数,还是要自己选择运行哪个class
为什么只能有一个public class,这与jvm有关了。