信息隐藏。隐藏对象的属性和实现的细节,仅对外提供公共访问方式。
一般使用private访问控制符实现,将对象的成员变量和实现细节隐藏起来,不允许外部直接访问;把方法暴露出来,让方法控制这些成员变量,进行安全的访问和操作。
a.数据安全性提高了。private封装了类的数据项属性和方法实现细节,只有对象本身才能调用自己的资源,可以对数据的合法性进行校验(可以想象一下,如果age/name/sex都变为public的,那么外部可以赋值任何数据,导致非法的数据也会放到对象里面,这是不应该的)package com.glut.edu.xupk.model; public class Person { private int age; private String name; private String sex; public int getAge() { return age; } //设置年龄在1~150之间,校验合法性 public void setAge(int age) { if(age < 0 || age > 150){ throw new IllegalArgumentException("年龄需在1~150之间,请检查!"); } this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } //设置性别只能是男女 public void setSex(String sex) { if(!("男".equals(sex) || "女".equals(sex))){ throw new IllegalArgumentException("性别只能是男或女,请检查!"); } this.sex = sex; } }
b.隐藏了内部实现,可以随时对方法内部细节进行修改,而无需修改调用该方法的代码。只要保持得到的结果是正确的,内部代码就能自由改变,降低耦合度
c.降低了代码的耦合度,封装成工具类可以减少很多繁琐的步骤
package com.glut.edu.xupk.model;
public class Car {
public void brake(){
//刹车的内部具体实现,可以改变实现,只要最终结果不变就行了
System.out.println("车子刹住了!!!");
}
public static void main(String[] args) {
Car car = new Car();
//这里直接调用刹车方法,并不关心内部实现细节
car.brake();
}
}
才疏学浅,仅仅是入门知识,如有错漏,还请各位大大指正
1万+



被折叠的 条评论
为什么被折叠?



