1.类成员的访问权限控制
Java中类成员的访问权限分为四类:private,无(默认情况下),protected和public。其权限控制如下表所示:
修饰词 |
本类 |
同一个包的类 |
继承类 |
其他类 |
private |
√ |
× |
× |
× |
无(默认) |
√ |
√ |
× |
× |
protected |
√ |
√ |
√ |
× |
public |
√ |
√ |
√ |
√ |
其中,类成员在默认情况下没有任何修饰词,这样的成员具有“包访问权”,即位于同一个包中的类对其有访问权;而protected为“继承访问权”,即该类的子类对其具有访问权(同时,位于同一个包中的类也对其具有访问权)。
2.类自身的访问权限控制
对于java类自身(除了内部类外,因为内部类也是类的成员故有上述四种权限修饰),其访问权限仅有两种:public和“无”(即包访问权),而没有private和protected。如果你 不希望其他任何人对该类拥有访问权,你可以把所有的构造器都指定为private,从而阻止任何人创建该类的对象。但是可以通过该类的静态方法创建对象,如下面的例子:
class Soup { // private Constructor! private Soup() {} // Allow creation via static method: public static Soup makeSoup() { return new Soup(); } }
注意:
1、如果一个.java源文件中有多个类,那么只能有一个类是public类;如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同。
2、如果源文件中没有public类,那么源文件的名字可以任意取。这样编译是没问题的,运行时选择主类(包含main方法)运行就可以。
3、main()方法不是必须要放在public类中才能运行程序。