面向对象数据模型
封装和信息隐藏
重要程度:8 分
<div>
<h2>封装和信息隐藏</h2>
<p>封装是指将数据和操作这些数据的方法捆绑在一起,形成一个独立的单元(即类)。这样做的目的是为了将对象的内部状态隐藏起来,不让外部直接访问。</p>
<p>信息隐藏是指通过封装机制,将类的内部数据结构隐藏起来,只暴露必要的接口供外部使用。</p>
<h3>举例说明</h3>
<p>假设我们有一个表示银行账户的类,其中包含账户余额等敏感信息。</p>
<pre>
<code>
class BankAccount:
def __init__(self, balance):
self.__balance = balance # 封装,私有变量
def deposit(self, amount):
if amount > 0:
self.__balance += amount
return True
else:
return False
def withdraw(self, amount):
if amount > 0 and amount <= self.__balance:
self.__balance -= amount
return True
else:
return False
def get_balance(self):
return self.__balance # 提供接口供外部访问
</code>
</pre>
<p>在这个例子中:</p>
<ul>
<li>账户余额(<code>__balance</code>)被封装在类内部,不允许外部直接访问。</li>
<li><code>deposit</code> 和 <code>withdraw</code> 方法控制了对余额的操作,确保了余额不会被非法修改。</li>
<li><code>get_balance</code> 方法提供了一个安全的接口来获取账户余额。</li>
</ul>
<p>通过这种方式,封装和信息隐藏保证了账户数据的安全性和一致性。</p>
</div>