網頁

2025年7月11日 星期五

Python 物件導向

一、主題說明: 

物件導向(OO,Object Oriented 是描述現實生活中所有實體的東西都可以使用物件來代替,譬如:汽車、腳踏車、電視機、電腦、狗、貓、...等,物件又是資料與程式碼的組合,就好比電腦是一個物件,而電腦有CPU規格、記憶體大小、硬碟容量、作業系統...等,這些電腦的特性都可以代表物件的資料,也可以稱作為屬性或成員變數;另外電腦需要開機、關機、執行應用程式、鍵入資料...等,這些用來敘述物件的行為或動作,它們就稱為程式碼,也可以稱為方法或成員函式;所以物件就是屬性與方法的組合。


二、程式應用:


class Area:    
    PI = 3.14
    circle_radius = 5
    square_side = 8
    rectangle_length = 6
    rectangle_wide = 7

    def getCircleArea(self):
        a = self.PI
        b = self.circle_radius
        return a*b*b
   
    def getSquareArea(self):
        a = self.square_side
        return a*a
   
    def getRectangleArea(self):
        a = self.rectangle_length
        b = self.rectangle_wide
        return a*b
   
#使用內定屬性
A1 = Area()
print("使用內定屬性:")
print("半徑為=",A1.circle_radius," 的園面積為=",A1.getCircleArea())
print("邊長為=",A1.square_side," 的正方形面積為=",A1.getSquareArea())
print("長為=",A1.rectangle_length," 寬為=",A1.rectangle_wide," 的
       長方形面積為=",A1.getRectangleArea())
print("----------------------------------------")
#修正內定屬性
A2 = Area()
A2.circle_radius = 10
A2.square_side = 15
A2.rectangle_length = 20
A2.rectangle_wide = 30
print("修正內定屬性:")
print("半徑為=",A2.circle_radius," 的園面積為=",A2.getCircleArea())
print("邊長為=",A2.square_side," 的正方形面積為=",A2.getSquareArea())
print("長為=",A2.rectangle_length," 寬為=",A2.rectangle_wide," 的
       長方形面積為=",A2.getRectangleArea())

#執行結果

使用內定屬性:

半徑為= 5  的園面積為= 78.5

邊長為= 8  的正方形面積為= 64

長為= 6  寬為= 7  的長方形面積為= 42

----------------------------------------

修正內定屬性:

半徑為= 10  的園面積為= 314.0

邊長為= 15  的正方形面積為= 225

長為= 20  寬為= 30  的長方形面積為= 600



三、程式說明:

class : 就是類別,是物件的分類,用來建構類別的物件,每一個類別是由屬性與方法所組成,相同的物件具有相同的屬性與方法,就好比汽車是一個類別,它有廠牌、型號、顏色...等屬性,也有可開門、關門、發動、加油、煞車...等方法,那此類別的屬性與方法都可以表示BMW、BENZ、TOYTA、及HONDA..等不同的物件,它們都有相同的屬性與方法。

在程式裡面的 PI、circle_radius、square_side、rectangle_length、rectangle_wide 皆是類別的屬性,而程式中使用 def 定義的函式 getCircleArea()、getSquareArea()、getRectangleArea() 就是類別的方法;程式使用 A1=Area() 及 A2=Area() 宣告兩個不同的類別,但它們都使用相同的屬性與方法,所以因此可以省掉重複撰寫相同的程式碼,不論在程式的效率上或維護上皆有很大的幫助。

在宣告類別的名稱第一個字母必須大寫,而定義方法的名稱第一個字母使用小寫,後面接續的每個英文單字的第一個字母都是大寫。

沒有留言:

張貼留言

TQC+ Python 證照考題評量(五十四) - 平均溫度

 一、主題介紹: 資料庫中的一堆數據資料,時常需要這些資料的平均值、最大值、與最小值,作為分析資料的依據,如能透過寫程式讓它們自動化就能增加效率,就來看看今天的 TQC+ 考題的練習。 (1) 題目 請撰寫一程式,讓使用者輸入四週各三天的溫度,接著計算並輸出這四週的平均溫度及最高...