1.什么是封装?
封装,作为面向对象的三大特性之一,可以吧不想让外界知道的信息隐藏起来,并尽可能隐藏对象功能实现细节,确保外界安全访问功能,并用pricate关键字私有化,不允许外届访问
2.封装的好处
1)防止调用者随意修改本不应修改的系统属性
2)提高组件的重用性
3)达到组件见的低耦合性
(放一个组件发生变化时,只要对外暴露的接口不变,就不会影响其他模块)
3.代码演示
public class xg {
public static void main(String[] args) {
friend x = new friend();
x.name = "德玛西亚";
x.age = 10;
x. sex = "boy";
System.out.println("名字 " +x.name+ " 年龄 " +x.age+ " 性别 " +x.sex);
}
}
class friend{
String name;
int age;
String sex;
}
此时,代码无任何异常且未采用封装方法,但我们可以轻易的改变x的age属性,为负数时不符合正常逻辑,为解决上述问题,我们可引入封装思想
public class xg {
public static void main(String[] args) {
friend x = new friend();
x.name = "德玛西亚";
x.setAge(-10);
System.out.println("名字 " +x.name+ " 年龄 " +x.getAge()+ " 性别 " +x.sex);
}
}
class friend{
String name;
private int age; //private修饰的变量将无法被其他类引用,xg类中的x.age将会报错
String sex;
public void setAge(int a) {
if (a < 0) {
System.out.println("输出有误");
return ;
}
age = a;
}
public int getAge() {
return age;
}
}
此时,在friend类中的age属性添加了private属性后,调用age只能通过getter和setter方法,可在方法中设置数值规范