在类中,要合理地隐藏和合理地暴露,隐藏一些不想被外界操作的field、方法、构造器。
封装的目的是简化编程、更好地保证对象的完整性。
为了实现隐藏,有以下几个修饰符:
private:只有当前类访问的。
省略修饰符:包访问权限,同一包才能访问。
protected:子类、包、当前类可访问。
public:公共访问权限。
权限从小到大为:
private、省略、protected、public
private:
用于隐藏field,比如对field的值有要求,可以用private隐藏起来,使外界不能通过对象.field直接赋值,而是通过方法赋值,可以控制值的内容。
public:
用于暴露方法。
protected:
希望它被子类访问。
默认:
希望在同一包中被访问。
包:
作用相当于命名空间,如果多个人定义的类名相同,就需要加个前缀代表哪个人的类,Java要求每个类名是包名.类名。
定义包:
package 包1.包2.包3......包N;
包命名规则是公司域名的倒写。
对于一个类,public前缀代表在包内包外都能访问,省略代表只能在包内访问.
把类放在包内:
package 包名; //写在在类源代码中开头,包名小写。
如果想在包外使用包内的类,要使用包名.类名,另一个简便方法是使用import导入包,格式为在源代码文件开头:
import 包名.* //导入包的命名空间
就可以直接用包内的类名了。
静态导入:
import static 包名.类名.* //导入类中静态field和方法。
导入类下面所有静态成员,相当于省略到类,直接import只能省略到包。