访问权限的控制常被称为是具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是封装。其结果是一个同时带有特征和行为的数据类型。
一、包:库单元
1.类库实际是一组类文件。其中每个文件都有一个public类,以及任意数量的非public类。因此每个文件都有一个构件。如果希望这些构件从属一个群组,可使用关键字package。且在第一句。
package access;
若想使用该名称的人都须使用前面给出的选择,指定全名或者与access结合使用关键字import。
import 包名.类名;
如果需要使用一个包中的多个类,可以用 import java.util.* ; 表示只加载在当前类中使用到的工具类。
import java.util.*
2.创建独一无二的包名,且包的整个名称都是小写。
注:无论何时创建包,都已经在给定包的名称的时候隐含地指定了目录结构。这个包必须位于其名称所指定的目录之中,而该目录必须是在以CLASSPATH开始的目录中可以查询到的。
二、java访问权限修饰符
从最大权限到最小权限依次为:public 、 protected 、包访问权限(没有关键词 (default))、private。在使用时,是置于类中每个成员的定义之前的——无论它是一个域还是一个方法。每个访问权限修饰词仅控制它所修饰的特定定义的访问权。
1.public:对所有类可见。使用对象:类、接口、变量、方法。
2.protected:同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰外部类。
关键字protected处理的是继承的概念,通过继承(关键字extends)可以利用基类(父类),然后将新成员添加到该现有的类中而不碰该现有类,继承之后的称为派生类(子类)。
3.default:在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
4.private::在同一类内可见。使用对象:变量、方法。 注意:不能修饰外部类。
三、类的访问权限
1.每个编译单元(文件)都只能有一个public类。
2.public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。
3.虽然不常用,但编译单元内完全不带public类也是可能的。在这种情况下,可以随意对文件命名。
4.类既不可以是private的,也不可以是protected的。所以对于类的访问权限,仅有两个选择:包访问权限或public。