Jython类、实例与继承详解
1. 封装、抽象与信息隐藏
封装是将多个实体组合或聚合,以产生一个新的、通常是更高级的实体,比如类。类将数据和相关功能封装到一个对象中,同时通过组织功能简化接口并隐藏实现细节,提供抽象。信息隐藏则是为了简化,只向用户展示他们需要看到的内容。
Java等语言通过使用 private
和 protected
等属性权限修饰符来加强抽象,就像设置了“电子围栏”。而Jython的隐私机制则较为开放,与Java相反。在Jython中,程序员可以查看和更改类中的大部分内容,但也有一些命名约定暗示了隐私性:
- 以一个下划线开头的属性是类内部使用的,但这只是约定,并非强制。例如:
class A:
_internal_var = "This is an internal variable"
- 以两个下划线开头的变量更接近强制隐私,但只是通过名称混淆实现。Jython会对以两个下划线开头的类和实例属性进行名称混淆,即在属性名前加上一个下划线和类名。例如:
class A:
__classVar = "A class variable designated as private"
def __init__(self):
self.__instVar = "An instance variable designated as private"
de