声明:此内容参考书籍《疯狂java讲义第二版》
封装是面向对象的三大特征之一(其他为多态和继承)指的是将对象的状 态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
为了实现封装,需要从两个方面考虑:
(1)将类的变量和实现细节隐藏起来,不允许外部直接访问;
(2)把方法暴露出来,让方法来控制对这些变量进行安全的访问和操作。
控制符
private:当前类访问权限。如果类中的一个成员(包括变量、方法、构造器等)使用private来修饰,则这个成员只能在当前类的内部被访问。
default:包访问权限。如果类中的一个成员或者外部类不使用任何访问控制符修饰,我们就称为包访问权限。default访问控制的成员或外部类可以被相同包下的其他类访问。
protected:子类访问权限。如果类中的一个成员(包括变量、方法、构造器等)使用protected来修饰,那么这个成员既可以被同一个包中的其他类访问也可以被不同包中的其他类访问。通常情况下,使用protected修饰一个方法,是希望其子类来重写这个方法。
public:公共访问权限。如果类中的一个成员(包括变量、方法、构造器等)或者外部类使用public来修饰,那么这个成员或外部类就可以被所有类访问,不管访问类和被访问类是否在同一个包中,是否具有父子继承关系。
package、import和import static
导入单个包
import package.subpackage....ClassName;
导入全部类
import package.subpackage....*;
如果导入的包中包含的类名重复,则需要使用类的全名。
静态导入
import static package.subpackage...ClassName.fieldname|methodname;
静态导入全部
import static package.subpackage...ClassName.*;