1分唾,什么是面對對象
首先要知道面對對象是一種思想。
操作難點不在于語法集灌,而在于分析!
面向?qū)ο螅?面向?qū)ο笫歉蟮姆庋b复哆,根據(jù)職責在一個對象里封裝多個方法欣喧,順序地讓不同的對象調(diào)用不同的方法
類和對象
?類和對象是面向?qū)ο缶幊痰膬蓚€核心概念 類是一群具有相同特征或者行為的事物的統(tǒng)稱,是抽象的寂恬,不能直接使用续誉,特征被稱為屬性,行為被稱為方法 類相當于一個一個模板初肉,是負責創(chuàng)建對象的 對象是類創(chuàng)建出來的一個具體的存在酷鸦,可以直接使用,由什么類創(chuàng)建的對象,就擁有那個類中定義的屬性和方法 在程序開發(fā)中臼隔,先有類再有對象 :
class Article:
def __into__(self,title,contend,author):
?????? self.title = title self.contend = contend
?????? self.author = author def a_title(self):
????????? ?return self.title
?def a_contend(self):
?????????? return self.contend
def a_author(self):
????????? return self.author
1. 類型的聲明
?通過 class 關(guān)鍵字直接聲明定義一個自定義類型
語法:
?class 數(shù)據(jù)類型名稱:
??? pass
2. 類型:專門用來創(chuàng)建對象
創(chuàng)建對象:包含具體數(shù)據(jù)的實體
?語法:
變量 = 數(shù)據(jù)類型()
3. 對象:是有特征的嘹裂! 項目需要這樣的特征,就定義它摔握,如果不需要就忽略它寄狼!
?語法:對象的特征~是需要在類型中定義的!
在通過類型創(chuàng)建對象時氨淌,才會給具體的特征賦值 給對象的特征賦值泊愧,
固定語法:在__init__()函數(shù)中操作
class Author:
?????? ?def __init__(self, username, password, nickname):
?????????????? ?self.username = username
??????????????? self.password = password
?????????????? ?self.nickname = nickname
python中通過類型創(chuàng)建對象[a = Author()]會自動調(diào)用__init__()方法
創(chuàng)建對象a = Author()-> Author.__new__()方法創(chuàng)建對象
?????????? ?-> Author.__init__()方法初始化數(shù)據(jù)
??????????????????????? -> 得到一個Author對象
在Python中,有一種特殊的函數(shù):魔法函數(shù)
?每個魔法函數(shù)有一些特定的功能盛正,方法名稱都是固定的
?魔法函數(shù)的命名規(guī)則:函數(shù)的前后各有兩個下劃線
3. 對象删咱,是有行為的?豪筝!
對象的行為痰滋,分析~是否和對象本身的數(shù)據(jù)有關(guān)!
?生活:分析~行為是否跟自己的身份和責任有關(guān)续崖!
?對象的行為:對象的方法:就是一個普通函數(shù)的升級
?將一個函數(shù)敲街,定義在類型的內(nèi)部,第一個參數(shù)~設(shè)置為可以接受對象的參數(shù):self
class Author:
?定義一個行為:個人介紹
?def introduction(self):
?print("個人介紹.........")
注意:方法和函數(shù)的最大的區(qū)別:第一個參數(shù)可以隱式接受當前對象作為實際參數(shù)
?方法是定義在類型的內(nèi)部的严望!
?方法的調(diào)用必須通過對象的引用變量調(diào)用
函數(shù)中的任何形式參數(shù)多艇,在調(diào)用的時候都需要明確的傳遞數(shù)據(jù)
函數(shù)是定在在類型的外部的!
函數(shù)的調(diào)用直接通過函數(shù)名稱調(diào)用
調(diào)用執(zhí)行方法:類似與調(diào)用執(zhí)行函數(shù)
?方法的調(diào)用執(zhí)行:必須通過對象的引用變量進行調(diào)用像吻!
?author = Author()
?author.introduction()