封装
封装是面向对象的三大特性之, 它指的是将对象的状态信 息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法实现对内部信息的操作和访问
封装的目的
封装是面向对象编程语言对客观世界的模拟,客观世界中的属性均被隐藏在对象内部,外界无法直接操作和修改,如人的年龄属性只能随岁月的流逝而增加,通常不能随意修改人的年龄。对一个类或对象实现良好的封装,可以实现以下目的:
(1)隐藏类的实现细节。
(2)让使用者只能通过事先预定的方法访问数据, 从而可以在该方法中加入控制逻辑, 限制对属性的不合理访可。
(3)可进行数据检查,从而有利于保证对象信息的完整性。
(4)便于修改,提高代码的可维护性。
实现良好封装的条件
实现良好的封装,需要从以下两个方面考虑:
(1)隐藏对象的属性和实现细节,不允许外部直接访问。
(2)暴露出方法,让方法控制对这些属性进行安全的访问和操作。
因此,封装实际上有两个方面的含义:隐藏该隐藏的,暴露该暴露的。这两个方面都需要通过使用、访问控制符来实现。
Java的访问控制级别从小到大如下图所示:
各访问权限的访问级别如下表所示:
访问修饰符 | 同一个类中 | 同一个包中 | 子类中 | 所有类中 |
---|---|---|---|---|
private | V | |||
default | V | V | ||
protected | V | V | V | |
public | V | V | V | V |
通过上述关于访问控制符的介绍,可知访问控制符用于控制一个类的成员是否可以被其他类访问。对于局部变量而言,其作用域就是其所在的方法,因此不可能被其他类访问,因此不能使用访问控制符修饰。
访问控制符的用法如下:
Public class demo{
Private int PrValue; //只有在类中才能访问到
Default int DeValue; //在同个类和包中都能访问到
Protected int PtValue; //在类和包、子类中才能访问到
Public int PbValue; //访问权限最高,都能访问到
}
static关键字
static表示一个类的成员变量,即静态成员变量。
语法如下:
[<修饰符>] [static] [final] <变量类型> <变量名>