天天看點

Python - 面向對象程式設計 - 什麼是對象和類

Object Oriented Programming,簡稱 OOP,是一種程式設計思想

OOP 把對象作為程式的基本單元,一個對象包含了資料和操作資料的方法

在程式設計領域中,通常把現實世界中的實體稱為對象,例如:

美國總統特朗普

中國明星成龍

上海中心大廈

北京中信大廈

對象指的是一個具體的實體,不用于指代一個抽象的群體

小鳳梨是一個具體的人,是以可以說小鳳梨是一個對象

它是一個中國人,但中國人是一個抽象的概念,指的是一群人

是以不能說中國人是一個對象

類似的,上海中心大廈、北京中信大廈這些具體的大廈可以被稱為對象,但是不能說大廈是一個對象

現實世界中的實體有屬性和行為,如下列舉了特朗普和小鳳梨的屬性和行為

對象

屬性

行為

特朗普

姓名、年齡

自我介紹

小鳳梨

行為又被稱為方法,它是對屬性的操作

包括讀取操作和修改操作,例如,在特朗普的自我介紹行為中,會讀取他的屬性:姓名和年齡

__doc__ 是屬性,字元串、清單都有這個屬性

upper() 是字元串的方法,也叫行為

append() 是清單的方法

在現實世界中,具體的實體被稱為對象

觀察這些對象的屬性和行為,發現可還是用相同的特征去描述一類對象

屬性和行為

姓名、年齡、工作

高度、業主、維護

現實生活中

可以使用【姓名、年齡、工作】 等特征去描述特朗普和成龍這一類對象,因為都是人

使用【高度、業主、維護】等特征去描述上海中心大廈、北京中信大廈這一類對象,因為都是大廈

程式設計世界中

類是對一組具有相同屬性和行為的對象的抽象

【人】是一個抽象的概念,它是一個類或類别,描述了具有【姓名、年齡、工作】等特征的一組對象

【大廈】是一個抽象的概念,它是一個類或類别,描述了具有【高度、業主、維護】等特征的一組對象

對象是一個具體的實體,比如【小鳳梨】是一個對象,是一個具體的人

類是一組具有相同特征的對象,【小鳳梨】【成龍】【特朗普】的都是一個具體的人,而人是一個類

對象屬于某個類,對象也可以不屬于某個類

【小鳳梨】是一個人,屬于人類,但不是一個大廈,不屬于大廈類