天天看点

Python - 面向对象编程 - 什么是对象和类

Object Oriented Programming,简称 OOP,是一种程序设计思想

OOP 把对象作为程序的基本单元,一个对象包含了数据和操作数据的方法

在编程领域中,通常把现实世界中的实体称为对象,例如:

美国总统特朗普

中国明星成龙

上海中心大厦

北京中信大厦

对象指的是一个具体的实体,不用于指代一个抽象的群体

小菠萝是一个具体的人,所以可以说小菠萝是一个对象

它是一个中国人,但中国人是一个抽象的概念,指的是一群人

所以不能说中国人是一个对象

类似的,上海中心大厦、北京中信大厦这些具体的大厦可以被称为对象,但是不能说大厦是一个对象

现实世界中的实体有属性和行为,如下列举了特朗普和小菠萝的属性和行为

对象

属性

行为

特朗普

姓名、年龄

自我介绍

小菠萝

行为又被称为方法,它是对属性的操作

包括读取操作和修改操作,例如,在特朗普的自我介绍行为中,会读取他的属性:姓名和年龄

__doc__ 是属性,字符串、列表都有这个属性

upper() 是字符串的方法,也叫行为

append() 是列表的方法

在现实世界中,具体的实体被称为对象

观察这些对象的属性和行为,发现可还是用相同的特征去描述一类对象

属性和行为

姓名、年龄、工作

高度、业主、维护

现实生活中

可以使用【姓名、年龄、工作】 等特征去描述特朗普和成龙这一类对象,因为都是人

使用【高度、业主、维护】等特征去描述上海中心大厦、北京中信大厦这一类对象,因为都是大厦

编程世界中

类是对一组具有相同属性和行为的对象的抽象

【人】是一个抽象的概念,它是一个类或类别,描述了具有【姓名、年龄、工作】等特征的一组对象

【大厦】是一个抽象的概念,它是一个类或类别,描述了具有【高度、业主、维护】等特征的一组对象

对象是一个具体的实体,比如【小菠萝】是一个对象,是一个具体的人

类是一组具有相同特征的对象,【小菠萝】【成龙】【特朗普】的都是一个具体的人,而人是一个类

对象属于某个类,对象也可以不属于某个类

【小菠萝】是一个人,属于人类,但不是一个大厦,不属于大厦类