小白一枚,若内容有侵权,请指出
今天总结一下面对对象程序设计三大特性之一:封装
封装
封装其实就是一种思想,做个小小的例子,平常用的充电宝,我们可以通过统一的USB接口去使用它,但是其内部构造是怎么样子,却不了解。
封装思想:
1.把对象的状态和行为看成一个统一的整体 将二者存放在一个独立的模块中(类)
2.信息隐藏 隐藏对象功能实现细节(尽可能隐藏)
如果外界想拿到隐藏的信息的值,就只能看有没有提供相应的接口,即取值和赋值的方法。
没有封装就没有继承,但是继承会破坏封装
class User{ private String name; //字段名 即属性私密化 private int age; //取值和赋值方法 public void setName(String name) { this.name = name; //字段名 = 变量取值和赋值方法 } public String getName() { return name; //return字段名 } }
public static void main(String[] args) {
//此时不能直接拿到name和age的值,也不能直接对其赋值,只能通过get,set方法
User u1 = new User();
u1.setName("张三");
System.out.println(u1.getName());
}
讲到封装,就必须讲讲修饰符
修饰符:
当在定义类时,使用public,可不写(默认一定为public)
1.private (类访问权限):修饰字段,方法,构造器,只能在当前类的范围
2.package (缺省/包访问权限):(即不写修饰符的时候)在同一个包中才可访问
3.protected (子类访问权限):其他类不能访问,但是父类和子类(不在同一个包中也可以)可以访问
4.public (公共访问权限):在任何地方都可以访问
所以,封装不仅仅体现在类上,包(package)也体现了封装