Jython 类、实例与继承全解析
1. 封装、抽象与信息隐藏
1.1 基本概念
封装是将多个实体组合成一个新的、通常是更高级的实体,如类。类将数据和相关功能封装到一个对象中,同时通过组织功能简化接口并隐藏实现细节,提供抽象。信息隐藏则是为了简化,只向用户展示他们需要看到的内容。
Java 使用 private
和 protected
等属性权限修饰符来强制实现抽象,就像设置了“电子围栏”。而 Jython 的隐私机制则较为开放,与 Java 形成鲜明对比。
1.2 Jython 的隐私机制
在 Jython 中,程序员可以查看和更改类中的大部分内容。不过,Jython 有一些命名约定暗示了隐私性:
- 以一个下划线开头的属性是类内部使用的,但这只是约定,并非强制。例如,你可以随意调用以一个下划线开头的属性,但需自行承担风险。
- 以两个下划线开头的变量更接近强制隐私,但只是通过名称混淆实现的。Jython 会对以两个下划线开头的类和实例属性进行名称混淆,即在属性名前添加一个下划线和类名。例如,类 A
中的变量 __var
会变成 _A__var
。以下是示例代码:
>>> class A:
... __classVar = "A class variable designated as private"
... def __init__(self