朋友-> 數量少!
-> 朋友越來越多,好朋友、普通朋友、一般朋友..
-> 朋友逐漸增加,閨蜜、知己、藍顏、紅顏...
-> 分類
人-> 認識世界
周圍的事情簡單(上小學,交作業)-> 乙個乙個記憶
周圍的事情-複雜(上大學、貸款)-> 做事情的步驟
周圍的事情-極度複雜(生活-進入社會)-> 思考[三思而後行]
**->還原過程
簡單的**操作-> 基礎語法,堆疊功能[變數、資料型別、運算、if、while]
函式式程式設計-> 將所有要處理的事情,開始封裝成具備一定處理功能的函式,呼叫執行:
面向過程程式設計:面向~設身處地換位思考--面向過程
開發人員~當你在完成這件事情時需要按照什麼樣的步驟進行操作
將這樣的操作步驟封裝在函式中,通過函式可以呼叫執行
這樣的開發操作~**中封裝了大量的包含處理步驟的函式——面向過程程式設計
適合中小型專案開發;大型專案開發[**的邏輯處理方式不夠成熟,導致**高耦合!]
物件導向程式設計-> 對面向過程程式設計的補充和完善
通過物件和物件之間的互動協作完成專案功能的開發
物件導向:面向:
物件:還原生活場景:
你和你的閨蜜:開了一家公司~ 小賣鋪!正常營業?[中小型專案]
進貨-> 擺貨-> 上架-> 售賣-> 售後!
每天的任務:兩個人商量當前的操作步驟即可!
你和你的閨蜜->公司公升級-> 上市-> 分公司[25家]
董事長、總裁
1家總公司、25家分公司[大型專案]
董事長[收錢]-> 總裁[裁人]-> 分公司總經理[分配|匯報]
-> 部分經理[分配]-> 部分主管[分配]
-> 員工組長[監督、幹活]-> 員工[幹活]
生活:大型生活場景|大型專案:需要大量的人員分工協作,共同完成上市公司的運營
**:大型專案開發|,需要大量的[型別、函式]物件分工寫作,共同完成專案功能的開發
物件導向程式設計:將專案中需要的各種資料型別、功能封裝成物件、函式
通過對向、函式之間的相互協作,完成功能開發。
物件導向:快速入門:hello world!
人->吃飯睡覺打豆豆【生活場景】
通過物件導向進行開發[認識物件導向的程式開發]
宣告定義型別
-> 建立物件
-> 物件有自己的特徵(名詞|變數)[姓名]
-> 物件有自己的行為(動詞|函式->方法)[吃飯、睡覺、打豆豆]
--------------------------------------
物件導向:萬物皆物件
物件:型別、特徵、行為
生活中~各種物件那麼多?人是怎麼認知這些物件?
分門別類:按照大量事物的外觀特徵和行為操作,將不同的事物分成不同的型別,方便區分
型別 vs 事物 什麼關係?
型別:是乙個名稱、是乙個概念、是乙個稱呼;
是從大量有相似外觀特徵和相似行為的事物中抽象出來的
如:車、人、美女、衣服、鞋子、電腦、桌子、凳子..
型別: 資料型別的簡稱!自定義資料型別
事物:是某種型別具體存在的,有具體特徵的、有具體行為的物體!
屬於某種型別的-> 屬於某種資料型別的
有具體的外觀特徵
有具體的行為操作
如:張三\身高176\體重88\吃飯睡覺串門
王老三\身高155\體重86\吃飯睡覺串隔壁
生活:型別和事物
型別是事物抽象出來的乙個稱呼/概念
事物是屬於某種型別的乙個具體存在的物體
物件導向:**體現
型別 vs 物件
1.型別:**中可以通過class關鍵字,自定義乙個資料型別
(1)資料型別:簡稱型別:簡稱類-> 自定義資料型別-> 自定義 類
(2)基本語法:
class 型別名稱:
型別中的**
(3)型別名稱命名規範:見名知意、駝峰命名法[乙個或者多個英文單詞組成、每個單詞首字母大寫]
(4)型別:通過專案中需要的大量有相似特徵和行為的物件,抽象出來的乙個資料型別
2.物件:
物件:有具體特徵和行為操作的事物
**:有具體(特徵)屬性和(行為)方法的物件-> 事物
3. 型別 vs 物件 區別?
型別:通過物件抽象出來的乙個資料型別
型別中需要定義物件需要的特徵[屬性|變數]和行為[方法]
class person:
# 定義屬性、特徵
# 固定寫法:在__init__方法中,定義型別的屬性
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
# 定義方法、行為
def eat(self, food):
print("吃飯了")
注意1:class 關鍵字,用來宣告定義乙個型別,固定寫法
注意2:型別中的所有函式,第乙個引數self表示當前物件,類似生活中的乙個名詞:我
注意3:型別中的函式,必須稱為方法;
函式 vs 方法 : 兩個東西
方法是一種特殊的函式,只能在型別中使用!
注意4:型別中方法,第乙個引數:指代的是當前物件~~~一般被宣告為self
表示當前物件,呼叫的時候不需要傳遞資料給self!
物件:某中型別乙個具體存在的事物
**中的物件,需要通過型別來建立
如:tom = person('湯姆', 18, '男')
通過 型別名稱() 的方式建立物件
建立物件時,自動呼叫執行__init__()方法,將物件需要的資料傳遞過去
有了物件,就可以執行物件的行為:呼叫物件的方法
通過 物件的變數.方法()直接呼叫
tom.eat("魚香肉絲")
1. 類和物件
類:型別的簡稱,資料型別的簡稱;
是一堆具有共同屬性和相似行為的物件的抽象
是乙個概念、乙個稱呼、乙個型別
物件:一種型別有具體資料的實體[實際存在的物體];
是某種型別下乙個有具體特徵資料和操作方法的 實體物件
物件有具體的資料!
2. 類的宣告定義
通過class 關鍵字進行定義
----------------------------------
class 資料型別名稱:
型別中的**
example:
# 建立乙個person型別
class person:
pass
----------------------------------
3. 物件的建立和使用
建立物件
變數 = 型別名稱()
tom = person()
tom:變數,儲存了person()物件的記憶體位址
--物件的引用變數【變數中存放的是可以引用到物件的記憶體位址】
使用物件:直接通過變數操作物件
print(type(tom))-->
1. 型別的宣告
通過class 關鍵字直接宣告定義乙個自定義型別
語法:class 資料型別名稱:
pass
2. 型別:專門用來建立物件
建立物件:包含具體資料的實體
語法:變數 = 資料型別()
物件是有特徵的,專案需要這樣的特徵,就定義它,如果不需要就忽略它!
語法:物件的特徵~是需要在型別中定義的!
在通過型別建立物件時,才會給具體的特徵賦值
給物件的特徵賦值,固定語法:在__init__()函式中操作
class author:
# 給物件的特徵賦值,在__init__()中進行操作
def __init__(self, username, password, nickname):
self.username = username
self.password = password
self.nickname = nickname
python中通過型別建立物件[a = author()]會自動呼叫__init__()方法
建立物件a = author()-> author.__new__()方法建立物件
-> author.__init__()方法初始化資料
-> 得到乙個author物件
在python中,有一種特殊的函式:魔法函式
每個魔法函式有一些特定的功能,方法名稱都是固定的
魔法函式的命名規則:函式的前後各有兩個下劃線!
物件的行為:物件的方法:就是乙個普通函式的公升級
將乙個函式,定義在型別的內部,第乙個引數~設定為可以接受物件的引數:self
class author:
# 定義乙個行為:個人介紹
def introduction(self):
print("個人介紹.........")
注意:方法和函式的最大的區別:第乙個引數可以隱式接受當前物件作為實際引數
方法是定義在型別的內部的!
方法的呼叫必須通過物件的引用變數呼叫
函式中的任何形式引數,在呼叫的時候都需要明確的傳遞資料
函式是定在在型別的外部的!
函式的呼叫直接通過函式名稱呼叫
呼叫執行方法:類似與呼叫執行函式
# 方法的呼叫執行:必須通過物件的引用變數進行呼叫!
author = author()
author.introduction()
致歉通告:最近在忙專案好久沒更新了,專案忙完會抓緊更新的
Python基礎知識 物件導向
物件導向英文單詞 object oriented 簡稱 o o 物件導向的學習 物件導向的語法學習 簡單,靠記憶就行,比較多 物件導向的思想學習 稍微有點難度,主要是前期不太適應 物件導向的優勢 能夠實現良好的程式結構,方便程式的開發和管理維護 效率 執行效率 計算機 物件導向效率不如過程化的快 開...
Java基礎知識 物件導向2
b 構造方法格式特點 b 構造方法注意事項 b 構造方法 構造方法 成員方法 b 給成員變數賦值 c 輸出成員變數值的方式 構造方法,get set 方法,以及乙個顯示所有成員資訊的方法。並測試。b 畫圖演示 舉例 d 可以通過類名呼叫 b 案例演示 b 靜態方法只能訪問靜態的成員變數和靜態的成員方...
python知識 物件導向程式設計
class person def init self,name self.name name p1 person xiao ming p2 person wang wu 在python中,類通過class關鍵字定義。以person為例,定義乙個person類如下 class person objec...