Jython 类、实例与继承的深入剖析
1. 封装、抽象与信息隐藏
1.1 基本概念
封装是将多个实体组合成一个新的、通常是更高级的实体,如类。类将数据和相关功能封装到一个对象中,同时通过组织功能简化接口并隐藏实现细节,提供抽象。信息隐藏则是为了简化,只向用户展示他们需要看到的内容。
Java 使用 private
和 protected
等属性权限修饰符来强制抽象,类似于“电围栏”方法。而 Jython 的隐私机制则较为开放,与 Java 相反。
1.2 Jython 的隐私约定
- 单下划线开头 :表示类的内部属性,这只是约定,并非强制。例如,你可以随意调用以单下划线开头的属性,但按约定需自行承担风险。
- 双下划线开头 :通过名称修饰(name mangling)来鼓励程序员尊重其隐私。Jython 会在以双下划线开头的属性名前添加下划线和类名。例如,类
A
中的__var
会变成_A__var
。但这种保护有限,仍可通过修饰后的名称访问属性。示例代码如下:
>>> class A:
... __classVar = "A class variable designated as private"
... def __init__(self