# 類和對象
## 目標
* 類和對象的概念
* 類和對象的關系
* 類的設計
## 01. 類和對象的概念
**類** 和 **對象** 是 **面向對象編程的 兩個 核心概念**
### 1.1 類
* 類是對一群具有相同特征或者行為的事物的一個統稱,是抽象的,不能直接使用。
* **特征** 被稱為 **屬性**
* **行為** 被稱為 **方法**
* **類** 就相當于制造飛機時的**圖紙**,是一個 **模板**,是 **負責創建對象的**

### 1.2 對象
* **對象** 是 **由類創建出來的一個具體存在**,可以直接使用
* 由哪一個類創建出來的對象,就擁有在哪一個類中定義的:
* 屬性
* 方法
* **對象** 就相當于用 **圖紙** **制造** 的飛機
> 在程序開發中,應該 **先有類,再有對象**
?
## 02. 類和對象的關系
* **類是模板**,**對象** 是根據 **類** 這個模板創建出來的,應該 **先有類,再有對象**
* 類只有一個,而對象可以有很多個
* **不同的對象** 之間 **屬性** 可能會各不相同
* **類** 中定義了什么 **屬性和方法**,**對象** 中就有什么屬性和方法,**不可能多,也不可能少**
## 03. 類的設計
在使用面相對象開發前,應該首先分析需求,確定一下,程序中需要包含哪些類!
?
在程序開發中,要設計一個類,通常需要滿足一下三個要素:
1. **類名** 這類事物的名字,**滿足大駝峰命名法**
2. **屬性** 這類事物具有什么樣的特征
3. **方法** 這類事物具有什么樣的行為
### 大駝峰命名法
~~~
CapWords
~~~
1. 每一個單詞的首字母大寫
2. 單詞與單詞之間沒有下劃線
### 3.1 類名的確定
**名詞提煉法** 分析 **整個業務流程**,出現的 **名詞**,通常就是找到的類
### 3.2 屬性和方法的確定
* 對 **對象的特征描述**,通常可以定義成 **屬性**
* **對象具有的行為**(動詞),通常可以定義成 **方法**
> 提示:需求中沒有涉及的屬性或者方法在設計類時,不需要考慮
### 練習 1
**需求**
* **小明** 今年 **18 歲**,**身高 1.75**,每天早上 **跑** 完步,會去 **吃** 東西
* **小美** 今年 **17 歲**,**身高 1.65**,小美不跑步,小美喜歡 **吃** 東西
?
### 練習 2
**需求**
* 一只 **黃顏色** 的 **狗狗** 叫 **大黃**
* 看見生人 **汪汪叫**
* 看見家人 **搖尾巴**

?
- linux基礎
- 01_Python基礎課程安排
- 02_操作系統(科普章節)
- 03_操作系統的發展史(科普章節)
- 04_文件和目錄(理解)
- 05_Ubuntu圖形界面入門
- 06_常用Linux命令的基本使用
- 07_Linux終端命令格式
- 08_文件和目錄常用命令
- 09_遠程管理常用命令
- 10_用戶權限相關命令
- 11_系統信息相關命令
- 12_其他命令
- python基礎
- 01_認識 Python
- 02_第一個Python 程序
- 03_PyCharm的初始設置(知道)
- 04_多文件項目的演練
- 05_注釋
- 06_算數運算符
- 07_程序執行原理(科普)
- 08_變量的基本使用
- 09_變量的命名
- 10_判斷(if)語句
- 11_運算符
- 12_循環
- 13_函數基礎
- 14_高級變量類型
- 15_綜合應用——名片管理系統
- 16_變量進階(理解)
- 17_函數進階.md
- 面向對象
- 01_面向對象(OOP)基本概念
- 02_類和對象
- 03_面向對象基礎語法
- 04_面向對象封裝案例
- 05_面向對象封裝案例 II