Python
# Program to demonstrate encapsulation using properties
class Account:
def __init__(self, balance=0):
self._balance = balance
@property
def balance(self):
return self._balance
@balance.setter
def balance(self, amount):
if amount < 0:
raise ValueError("Balance cannot be negative")
self._balance = amount
acc = Account(100)
print(acc.balance)
acc.balance = 150
print(acc.balance)Output
100 150
The @property decorator allows attribute-style access while still enforcing validation in the setter.