1.封装的定义
在java中,封装是面向对象编程中的一个重要概念,它指的是将数据和操作数据的方法(即行为)捆绑在一起,以实现数据的隐藏和保护。封装可以通过使用访问修饰符(如private、public)来限制对类的内部状态的访问,从而确保数据不会被意外修改。
补充:面向对象的三大特征:封装、继承、多态
2.封装的优点
(1)数据隐藏:可以隐藏类的内部实现细节,只暴露必要的接口给外部使用。
(2)数据保护:可以防止外部直接访问和修改类的内部状态,确保数据的完整性。
(3)简化接口:通过封装,可以提供简洁清晰的接口,使类的使用更加方便和安全。
3、封装的设计规范——合理隐藏、合理暴露
简单解释:就是将类中的成员变量根据其重要性,设置为私有变量。然后定义对应的函数方法来操作成员变量。从而实现保护成员变量不受外界影响。
4、代码层面控制对象的成员公开或隐藏
公开成员:可以使用public(公开)进行修饰。
隐藏成员:可以使用private(私有、隐藏)进行修饰。
5.具体代码展示
以下是演示对类进行封装的代码:
定义了一个学生类,将学生类的成员变量设为私有属性,则在学生类的外部不能调用socre成员变量。但是定义了对应的函数实现了对socre的操作。
package object.fengzhuang; /*封装定义: * 就是用类设计对象处理某一个事物的数据时,应该把 * 要处理的数据,以及处理这些数据的方法,设计到一个对象中去。 * * * */ public class student { private double score; public void setScore(double score){ if (this.score<=100) this.score=score; else System.out.println("输入数据不规范"); } public double getScore(){ return score; } public void printPass(){ System.out.println(score>60?"成绩合格":"成绩不合格"); } }
以下是一个测试代码:
在主函数中,我创建了一个学生对象s1,不能访问score成员变量。但是我们可以通过调用函数来访问和设置score变量。因为调用的函数是经过程序员处理过的,所以当用户恶意输入时,就会被过滤。从而实现保护成员变量socre不会被乱修改。
package object.fengzhuang; public class test { public static void main(String[] args) { student s1=new student(); s1.setScore(96); System.out.println(s1.getScore()); } }
不能访问score成员变量截图:
运行截图: