Day05_23_封装
封装
-
什么是封装?
-
封装可以被认为是一个类的保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代
码,而不用修改那些调用我们代码的程序片段。 -
封装的核心就是属性私有化 。private修饰符: private表示私有化一个类的属性,用private修饰的属性只能在本类中访问到,在其他的类中无法进行直接访问。
-
-
封装的意义?
-
良好的封装能够减少耦合。
-
类内部的结构可以自由修改。
-
可以对成员变量进行更精确的控制。
-
隐藏信息和实现的细节。
-
提高程序安全性保护数据
-
统一接口
-
-
-
封装的步骤
- 将所有属性私有化。使用private关键字对属性进行修饰,所修饰的所有数据只能在本类中访问。 - 对外提供两个公开的方法,分别是Set方法和Get方法,修改属性用Set方法,读取属性用get方法。使以后类中的属性可以被访问,但必须通过此入口进行访问。 - 因为属性私有以后,外部不能直接调用这些私有属性了,所以需要提供 public的 get/set方法,从而满足外部的调用需要。
-
实例
// 封装 封装的核心就是属性私有 public class Student { // 属性 属性私有 private String sno; private String name; private int age; boolean sex; private String addr; //方法 public void study(){ System.out.println("学生学习"); } // 因为属性私有以后,外部不能直接调用这些私有属性了,所以需要提供 public的get/set方法,从而满足外部的调用需要。 // 获取学号的值 public String getSno(){ return this.sno; } // 设置学号的值 public void setSno(String sno){ this.sno=sno; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if(age>0&&age<=200){ this.age=age; }else{ System.out.println("您的输入有误"); } } public boolean isSex() { return sex; } public void setSex(boolean sex) { this.sex = sex; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } }