1. 程式人生 > >01什麼是面向物件,面向物件的基本操作

01什麼是面向物件,面向物件的基本操作

1.0---面向物件的概念
.
類: 具有相同屬性和技能的一類事物; (人類就可以作包含了多個物件(人)的)
物件: 具體類的表現,具體到個體,實實在在的一個例項; (高小波是一個人,就是人類中實實在在的個體)

為什麼要學習類,物件: 可以將程式碼形成一個個程式碼塊,這些程式碼塊可以進行相互間的操作(類間的繼承,物件對類的操作),有利於程式碼的規範和引用
.
2.0---類的格式
.
類體: 包括倆部分 變數部分(靜態變數) ,方法(函式)部分(普通函式,構造方法)

class Person:           #  Person 類名
    name='有名字'             #  靜態變數,(也叫靜態欄位)
    animal='高階動物'
    faith='有信仰'

    def work(self):            #  方法(函式)
        print('有沒有工作')
    def house(self):
        print(self)
        print('有沒有房子')

.
3.0---面向物件的操作
.
對類的操作可以從倆個角度來講:通過類名對類進行操作,通過物件對類進行操作
從類名的角度:
.
a.-- dict
Person.dict 操作 查詢類中的所有內容;不能進行增刪改操作
b.--萬能的 . (可實現增刪改查)

print(Person.name)   # 查
Person.age=25    # 增     在類的函式中也可以操作
Person.name='高波'    # 改
del Person.animal        # 刪

操作類中的方法(在工作中基本不用)
Person.work(11)

.
從物件的角度

class Person:
    name='有名字' #  靜態變數,或者是靜態欄位
    animal='高階動物'
    faith='有信仰'
    def __init__(self,name,age,sex,hobby):     #  構造方法(每個類都要有構造方法)
        self.name=name
        self.age=age
        self.sex=sex
        self.hobby=hobby      # 給物件封裝相應的屬性(變數,可控);
    def work(self):
        print('有沒有工作')
    def house(self):
        print(self)
        print('有沒有房子')

ret=Person('高波',25,'boy','不知道')
預設將Person的空間地址傳給self,其他得引數會依次傳入
#1, 類名+()產生一個例項(物件,物件空間.)
#2, 自動執行類中的init方法,將物件空間傳給init的self引數,
#3, 給物件封裝相應的屬性(變數). 可控的

自動執行類中的init方法,將物件空間傳給init的self引數,
Person() # 類名+() 的這個過程:例項化的過程(建立一個物件的過程)
Person() 例項化物件,例項,物件

a.--操作物件中的靜態變數
1.0 dict 查詢物件中的所有內容
2.0 萬能的 .

print(ret.name)
ret.hith=1.68
del ret.hobby
ret.name='高小波'
 print(ret.__dict__)

b.--物件操作類中的靜態變數

print(ret.name) # 如果物件中有就會先查詢物件中的,沒有的得話,向上一步查詢類中的
print(ret.faith)
c.--物件操作類中的方法 (工作中,通過物件)
ret.work()
ret.house()