封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
封装好处:
- 将变化隔离
- 便于使用
- 提高重用性
- 提高安全性
封装原则:
- 将不需要对外提供的内容都隐藏起来
- 把属性都隐藏,提供公共方法对其访问
(比如函数就是 一个封装体)
/*
* private :私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)
* 私有只有在本来中有效
*
* 将age私有化以后,类以外即使建立了对象也不能直接访问
* 但是人应该有年龄,就需要在Person类中提供对应访问age的方式setAge()
*/
//注意:私有仅仅是封装的一种表现形式
class Person {
private int age;
public void setAge(int a){
age = a;
}
void speak(){
System.out.print("age = "+age);
}
}
public class PersonDemo {
public static void main(String[] args) {
Person p = new Person();
p.setAge(-20);
p.speak();
}
}
之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句对访问的数据进行操作。提高代码健壮性
例如将以上setAge()函数改为如下:
public void setAge(int a){
if (a>0 && a<130)
age = a;
else
System.out.println("No!");
}