簡稱oop,是一種程式設計的思想。oop把物件當成乙個程式的基本單元,乙個物件中包含了資料和運算元據的函式。物件導向極大地提公升了程式設計效率,使程式設計的重用性增高。
封裝,顧名思義就是將內容封裝到某個地方,以後再去呼叫被封裝在某處的內容
對於物件導向的封裝而言,其實就是使用構造方法將內容封裝到物件中,然後通過物件直接或者self間接獲取被封裝的內容。
class
wzy:
def__init__
(self,name,age,major)
: self.name = name
self.age = age
self.major = major
deflearn
(self)
:print
(f" is learning "
)def
love
(self)
:print
(f" is years old, it's time to love"
)hmz = wzy(
"hmz",21
,"dig data"
)hmz.learn(
)
繼承,物件導向中的繼承和現實生活中的繼承相同,即:子可以繼承父的內容
class
wzy:
def__init__
(self,name,age,major)
: self.name = name
self.age = age
self.major = major
deflearn
(self)
:print
(f" is learning "
)def
love
(self)
:print
(f" is years old, it's time to love"
)class
hmz(wzy)
:def
__init__
(self, name, age, major,score)
:# 只用顯示傳入的變數名即可
super()
.__init__(name, age, major)
self.score = score
defjuan
(self,name)
:print
(f"i will get and juansi "
)hmz = hmz(
"hmz",21
,"dig data"
,100
)hmz.juan(
'wzy'
)
3.1 靜態方法(@staticmethod)
使用@staticmethod將下面的函式和所屬的類截斷了,這個函式不屬於這個類,沒有類的屬性,不過還是需要通過類名進行呼叫。
class
demo
:def
__init__
(self,name)
: self.name = name
#使用staticmethod方法之後相當於下面的函式和self中的定義將無關,不能再使用self
@staticmethod
defhello
(name)
:print
(f" say hello to "
)w = demo(
"wzy"
)w.hello(
"hmz"
)
3.2 類方法(@classmethod)
類方法只能訪問類變數,不能訪問例項變數
class
person
: attribute =
"person"
def__init__
(self,name,age,gender,attribute)
: self.name = name
self.age = age
self.gender = gender
self.attribute = attribute
@classmethod
#只能訪問類中自定義的屬性名稱
defsay
(self)
:# print(f"i am a ")
print
(f"i am a "
)p = person(
"wzy",19
,'male',12
)p.say(
)
3.3 屬性方法(@property)
把乙個方法變成乙個靜態屬性,屬性就不用再加小括號了.
class
person
(object):
def__init__
(self,name)
: self.name = name
@property
defeat
(self)
:print
(f" is eating"
)p = person(
"wzy"
)p.eat
#### 4.1 成員修飾符
python的類中只有公有成員和私有成員兩種,在python中沒有關鍵字去修飾成員,預設的所有成員都是公有成員,但是私有成員是以兩個下劃線開頭的名字以標識私有成員,私有成員不能直接訪問,只能通過內部方法進行呼叫,私有成員也不能被繼承。
class
b(a)
:def
__init__
(self,name)
:super
(b,self)
.__init__(
) self.name = name
@property
defshow
(self)
:print
(f"self.name = "
)#下一行會報錯,因為私有變數不能被繼承
# print(f"self.__age = ")
print
(f"self.ge = "
)obj = b(
'wzy'
)obj.show
4.2特殊成員
__init__:類的構造方法
__del__:類中的析構方法(預設不用寫)
Java基礎學習摘要之物件導向
形式引數和返回值 方法的形參 方法返回值 基本資料型別,傳遞對應的資料型別的這種值 引用資料型別 引用型別是 具體 類 需要傳遞該類的具體物件 抽象類 需要傳遞的是該抽象類的子類物件 介面 需要傳遞該介面的子實現類物件在乙個類a中定義另乙個類b,類b就是類a的內部類.內部類的分類 不管是成員內部類還...
python物件導向學習 python物件導向學習
物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...
物件導向程式設計(章節摘要)
1,物件導向有3個主要特徵,即封裝性,繼承性,多型性。2,如果乙個類藥設定繼承則必須指定notfinal,否則此類無法被繼承。3,如果要對查詢出來的資料進行排序,可以使用map或order定義函式。4,在乙個類中,預設提供的構造方法需要傳遞全部的屬性內容,如果使用者有需要,也可以利用construc...