【第四章】Java中的封装
【第四章】Java中的封装一、什么是封装二、使用封装的原因三、Java 中如何实现封装在 Java 面向对象编程中封装是最基础、最重要的特性之一。所谓封装就是把对象的属性和行为包装在类的内部对外隐藏实现细节只通过规定的方法与外界交互。简单来说封装的核心思想就是“隐藏内部细节控制外部访问。”一、什么是封装在程序设计中一个对象往往具有自己的属性和操作这些属性的方法。如果外部代码可以随意访问和修改对象内部的数据就容易导致数据混乱破坏程序的安全性和稳定性。因此Java 提供了封装机制将成员变量设置为私有 private通过公共方法 public 提供访问入口在方法中控制数据的读写规则这样就能保证对象的数据更加安全、合理。这也是面向对象程序设计的三大特性封装、继承、多态之一。二、使用封装的原因封装的作用主要体现在以下几个方面保护数据安全外部不能直接随意修改对象内部属性避免非法赋值。隐藏实现细节使用者只需要知道“怎么用”不需要知道“内部怎么实现”。提高代码可维护性如果以后内部实现发生变化只要对外接口不变外部代码通常不需要修改。增强代码的可控性可以在方法中加入判断逻辑对数据进行合法性验证。三、Java 中如何实现封装Java 中实现封装最常见的方式是成员变量使用 private提供 getter 和 setter 方法classStudent{privateStringname;privateintage;publicvoidsetName(Stringname){this.namename;}publicStringgetName(){returnname;}publicvoidsetAge(intage){if(age0age150){this.ageage;}else{System.out.println(年龄输入不合法);}}publicintgetAge(){returnage;}}publicclassTest{publicstaticvoidmain(String[]args){StudentsnewStudent();s.setName(张三);s.setAge(20);System.out.println(姓名s.getName());System.out.println(年龄s.getAge());s.setAge(-5);}}上面代码中体现出了封装的思想name 和 age 被 private 修饰外部不能直接访问外部如果想修改属性必须调用 setName() 和 setAge()在 setAge() 中加入了合法性判断防止错误数据进入对象内部这就体现了封装的真正意义对象不是把数据直接暴露出去而是通过方法控制访问过程。Java 中的封装具有以下优点提高安全性避免对象数据被随意篡改。提高灵活性可以在访问方法中增加验证、提示、日志等功能。降低耦合度外部依赖的是方法而不是内部实现细节。更符合面向对象思想对象应该自己管理自己的数据而不是让外界直接操作。封装本质上是一种访问控制机制 。在实际开发中就是加入了一组访问器例如privateStringid;publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.idid;}封装是 Java 面向对象的重要特性之一其核心是将属性隐藏在类的内部通过公共方法控制外部访问。它的主要作用包括保护数据隐藏细节控制访问提高可维护性在 Java 中封装通常通过 private 成员变量和 public 方法来实现。合理使用封装可以让程序更加安全、清晰、规范。封装就是把对象的属性私有化并通过方法对外提供受控访问从而达到隐藏细节和保护数据的目的。