python物件導向程式設計基礎:
1、類的建立和例項化
2、繼承、多型、多重繼承
類的繼承是一種縱向的關係,def class(baseclass),class類繼承baseclass,擁有baseclass的屬性和方法
3、類的組合
類的組合是一種橫向關係
4、內部屬性
由於python語言沒有public、private這樣的關鍵字定義屬性是公有還是私有的,所以如果使用普通變數命名屬性就可以被外部任意呼叫和修改,這顯然是不安全的。python採用了一種name mangling機制,在類的屬性命名前加上『__』則外部就不可訪問該屬性名,但是內部可以訪問和呼叫
#coding:utf-8
'''oop 物件導向程式設計
類的建立
類的例項化
繼承、多型、多重繼承
組合類的屬性和方法是靜態的
內部屬性,不允許外部訪問和修改,在屬性名前加'__',這是乙個name manling,在python中,例項的變數名如果以__開頭,就變成了乙個私有變數(private),只有內部可以訪問,外部不能訪問
既然內部可以訪問,如果我們確實需要修改屬性,則可以建立內部的修改屬性方法
'''class
user:
''' 定義乙個使用者類
'''def__init__
(self,name,age):
self.__name=name
self.age=age
defsetname
(self,name):
self.__name=name
defgetname
(self):
print('我的名字是:%s' %self.__name)
defgetage
(self):
print('我的年齡是:%d歲' %self.age)
user1=user('四明',30)
user1.getname()
user1.__name='這樣子是改不了的'
#改不了name屬性了
user1.getname()
user1.setname('這樣子就可以改了')
user1.getname()
user2=user('python',2)
user2.getname()
user2.getage()
user2.age=20
user2.getage()
# 繼承和多型
# 多型就是說同乙個方法對於不同的類可以有不同的實現
class
animal:
def__init__
(self,name,legs):
self.__legs=legs
self.__name=name
defgetname
(self):
return self.__name
defprintinfo
(self):
print('我是%s,我有%d條腿' %(self.__name,self.__legs))
defshout
(self):
pass
#animal定義了乙個模版
class
cat(animal):
defshout
(self):
print("喵喵喵...") #重寫父類的shout方法
class
dog(animal):
defshout
(self):
print("汪汪汪...") #重寫父類的shout方法
defrun
(animal):
print('%s is running...'%animal.getname())
# 建立cat和dog的例項
cat1=cat('喵星人',4)
dog1=dog('汪星人',5)
cat1.printinfo()
cat1.shout()
dog1.printinfo()
dog1.shout()
run(cat1)
run(dog1) #這就是一種多型,傳入不同的物件會有不同的表現
python物件導向程式設計基礎
一 基礎例項 class car def init self,make,model,year 初始化描述汽車的屬性 self.make make self.model model self.year year self.odometer reading 0 如果對屬性設定預設值,那麼括號裡面就不需要...
python基礎 物件導向程式設計
物件導向程式設計 object oriented programming,簡稱oop,是一種程式設計思想。oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的函式。面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函式的順序執行。為了簡化程式設計,面向過程把函式繼續切分為子函式,即把...
物件導向程式設計基礎
當類中的成員變數與成員方法中的引數重名時,使用this,來使用類中的成員變數 不用的話,就是成員方法中的引數 public class test public static void main string args 123 system.out.println this.name abc無參構造方...