Looking up...
面向对象编程中,将数据(属性)和操作数据的方法(函数)绑定到一个单元(类或对象)内,并限制外部对内部数据的直接访问的机制。
Java中的类通过private关键字封装字段,仅提供公共方法访问这些字段。
Java类使用private修饰符隐藏内部字段,通过public方法暴露必要的操作接口。
Python的@property装饰器允许开发者控制属性的访问和修改。
Python通过@property实现属性封装,使开发者能定义getter/setter逻辑。
封装的核心目的是数据隐藏和接口控制,与继承、多态并称为面向对象编程的三大特性。
在设计类时,将不需要外部访问的字段设为private,仅通过public方法提供必要的操作接口。例如,银行账户类的余额字段应封装,仅提供存取款方法。
封装的核心是最小化对象内部状态的暴露范围。任何不必要的公开都可能导致数据被误用,降低代码的健壮性。
面向对象(object-oriented)源自英文,20世纪60年代由Simula语言首次提出;封装(encapsulation)同样源自英文,强调将数据与方法包装为单一单元。中文术语由计算机科学领域借译而来,沿用至今。
在中文技术文档中,'面向对象封装'通常简称为'封装'。初学者需理解封装不仅是语法现象,更是设计原则,用于构建模块化、可复用的代码结构。