什么是抽象、什么是封装?python中进行面向对象程序设计,如何体现抽象和封装?
时间: 2024-06-11 15:07:33 浏览: 156
面向对象1
抽象是将对象的特征和行为抽离出来,只关注对象的重要特征和行为,而忽略其它细节。封装是将数据和方法封装在对象内部,对外部隐藏实现细节,只提供对外的接口。面向对象程序设计中,抽象和封装是两个基本概念。
在Python中进行面向对象程序设计,可以使用类来体现抽象和封装。类是一个抽象的概念,它描述了一类对象的共同特征和行为。通过定义类,可以将对象的特征和行为抽象出来,而不必关注具体对象的细节。
封装可以通过类的访问控制来实现。Python中使用下划线来表示私有属性或方法,只有类内部可以访问。另外,可以使用属性和方法来封装数据和行为,对外提供接口,隐藏实现细节。
例如,下面的代码定义了一个Person类,它有名字和年龄两个属性,以及一个say_hello方法:
```python
class Person:
def __init__(self, name, age):
self._name = name
self._age = age
def say_hello(self):
print("Hello, my name is {} and I'm {} years old.".format(self._name, self._age))
```
在这个例子中,属性_name和_age使用下划线表示私有属性,只能在类内部访问。say_hello方法封装了输出语句的行为,对外提供接口。
使用这个类,可以创建具体的对象,如下所示:
```python
person = Person("Tom", 20)
person.say_hello()
```
输出结果为:
```
Hello, my name is Tom and I'm 20 years old.
```
在这个例子中,抽象体现在Person类中,它抽象出了人这个概念的共同特征和行为。封装体现在类的访问控制和方法的封装中,它隐藏了实现细节,只提供了对外的接口。
阅读全文