關於不知道物件導向的新手小白
怎麼說呢 新手小白是從R開始學程式的
所以對物件導向沒有甚麼概念
爬了一些文章 大概知道
物件導向其實較適合大型的專案
因為寫出來的子程式可以很快的呼叫
也可以很容易的互相交換使用
下面我就用我知道的簡單例子 來說說物件導向

首先呢 物件導向的起手式
需要 class, __init__ , self 這三個關鍵字  


# 我來定義一個 物件 他裏面包含了 身高 和 台斤
# XXX 是我亂取的名字
#詳細寫出來如下
#至於為什麼要用 __init__ 和 self 我不是很清楚 就當作固定的寫法吧..
class XXX:
    def __init__(self,h,w):  # __init__ 一樣是一個函數
        self.height=h        # self 指得是整個物件本身
        self.weight=w*0.6    ##公斤轉台斤
        # 然後我們定了兩個附屬的屬性? h 和 w 
        # 不懂的話先想成是專門定給 self 的函數吧
        # 函數名稱分別是 height 和 weight
        # 函數內容分別就是 h 和 w *0.6
        


#定義好了之後 我們來跑跑看吧
QQ=XXX(170,100)     
# 以函數來看是應該要填三個欄位 但是self就跳過吧!!
# 所以我分別輸數了 身高為170 和 體重為 100公斤
# 我們看看他 print 出來的樣子
# 可以看到 "XXX object" 恩..意思就是我們建出了XXX的物件
# 我們可以很輕易地用 QQ.height,QQ.weight 叫出我們要的東西
print(QQ)
print(QQ.height,QQ.weight)


#接下來 我們可以加入一些 def 讓我們定義的物件豐富些
class XXX:
    def __init__(self,h,w):  
        self.height=h        
        self.weight=w*0.6    
    def PRI(self):
        print("身高",self.height, "台斤為" , self.weight)
#我定了一個幫我把身高和台斤都 print 出來的函數 叫 PRI
#呼叫得時候一樣用 點號 就可以
#但使用時記得加()喔

QQ=XXX(170,100)     
QQ.PRI()


## 最後介紹一下繼承這個功能
## 這也是我說為甚麼物件導向適合大型的專案
## 當我們覺得剛寫的 XXX 這個物件很不錯
## 我不想動 我寫好的 XXX
## 但又想要把它的功能用到其他物件裡
## 我可以使用承繼的功能
#寫法如下:
class XXXX(XXX):   ### 簡單來講就是把 self 改成 XXX 
    def PRI2(self):    ### __init__ 就不用囉 
        print("身高一樣",self.height, "但我長胖了" , 3 ,'斤')
QQQ = XXXX(170,100)
QQQ.PRI2()


好囉 以上只是我對物件導向的一些理解
不管怎說 我都覺得這種寫法 看起來就很厲害
而且在大專案裡面 可以把東西切個得比較清楚
我想這也是他為什麼叫物件的原因吧
總之  有機會的話 新手小白也會試試看這種寫法

本篇的code 在 http://ge.tt/5DLkhXt2
謝謝大家

 

arrow
arrow

    Markjong001 發表在 痞客邦 留言(0) 人氣()