面向對象編程
- Object Oriented Programming,簡稱 OOP,是一種程序設計思想
- OOP 把對象作為程序的基本單元,一個對象包含了數據和操作數據的方法
Python里面有一句話:萬物皆是對象
在編程領域中,通常把現實世界中的實體稱為對象,例如:
- 美國總統特朗普
- 中國明星成龍
- 上海中心大廈
- 北京中信大廈
對象指的是一個具體的實體,不用於指代一個抽象的群體
- 小菠蘿是一個具體的人,所以可以說小菠蘿是一個對象
- 它是一個中國人,但中國人是一個抽象的概念,指的是一群人
- 所以不能說中國人是一個對象
類似的,上海中心大廈、北京中信大廈這些具體的大廈可以被稱為對象,但是不能說大廈是一個對象
對象的屬性和行為
現實世界中的實體有屬性和行為,如下列舉了特朗普和小菠蘿的屬性和行為
對象 | 屬性 | 行為 |
---|---|---|
特朗普 | 姓名、年齡 | 自我介紹 |
小菠蘿 | 姓名、年齡 | 自我介紹 |
行為又被稱為方法,它是對屬性的操作
包括讀取操作和修改操作,例如,在特朗普的自我介紹行為中,會讀取他的屬性:姓名和年齡
Python 對象
對象栗子
# 字符串 'Hello' # 列表 ['www', 'poloyy', 'com'] # 元組 ('www', 'poloyy', 'com') # 字典 {'name': 'tom', 'age': 123}
對象的屬性
>>> string = 'Hello' >>> print(string.__doc__) str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str Create a new string object from the given object. >>> list = ['a', 'b', 'c'] >>> print(list.__doc__) list() -> new empty list list(iterable) -> new list initialized from iterable's items
__doc__ 是屬性,字符串、列表都有這個屬性
對象的行為
>>> string = 'Hello' >>> string.upper() 'HELLO' >>> list = ['a', 'b', 'c'] >>> list.append('d') >>> list ['a', 'b', 'c', 'd']
- upper() 是字符串的方法,也叫行為
- append() 是列表的方法
什么是類
類的定義
- 在現實世界中,具體的實體被稱為對象
- 觀察這些對象的屬性和行為,發現可還是用相同的特征去描述一類對象
對象 | 屬性和行為 |
---|---|
美國總統特朗普 | 姓名、年齡、工作 |
中國明星成龍 | 姓名、年齡、工作 |
上海中心大廈 | 高度、業主、維護 |
北京中信大廈 | 高度、業主、維護 |
現實生活中
- 可以使用【姓名、年齡、工作】 等特征去描述特朗普和成龍這一類對象,因為都是人
- 使用【高度、業主、維護】等特征去描述上海中心大廈、北京中信大廈這一類對象,因為都是大廈
編程世界中
- 類是對一組具有相同屬性和行為的對象的抽象
- 【人】是一個抽象的概念,它是一個類或類別,描述了具有【姓名、年齡、工作】等特征的一組對象
- 【大廈】是一個抽象的概念,它是一個類或類別,描述了具有【高度、業主、維護】等特征的一組對象
類和對象的區別
- 對象是一個具體的實體,比如【小菠蘿】是一個對象,是一個具體的人
- 類是一組具有相同特征的對象,【小菠蘿】【成龍】【特朗普】的都是一個具體的人,而人是一個類
類和對象的關系
- 對象屬於某個類,對象也可以不屬於某個類
- 【小菠蘿】是一個人,屬於人類,但不是一個大廈,不屬於大廈類