1. 程式人生 > 實用技巧 >第036講:類和物件:給大家介紹物件 | 課後測試題及答案

第036講:類和物件:給大家介紹物件 | 課後測試題及答案

測試題:

0. 物件中的屬性和方法,在程式設計中實際是什麼?

屬性就是靜態的特徵;方法呢就是動態的動作,可以是一個個的函式。

答:變數(屬性)和函式(方法

1. 類和物件是什麼關係呢?

類是一個比較模糊的概念,

答:類和物件的關係就如同模具和用這個模具製作出的物品之間的關係。一個為它的全部物件給出了一個統一的定義,而他的每個物件則是符合這種定義一個實體,因此類和物件的關係就是抽象和具體的關係。

2. 如果我們定義了一個貓類,那你能想象出由“貓”類例項化的物件有哪些?

花貓,黑貓,白貓。。。。

答:叮噹貓,咖啡貓,Tom(Tom&Jerry),Kitty(Hello Kitty)……

3. 類的定義有些時候或許不那麼“擬物”,有時候會抽象一些,例如我們定義一個矩形類,那你會為此新增哪些屬性和方法呢?

屬性有:長、寬、面積,方法嘛:求面積,

答:屬性可以是長和寬,方法可以是計算周長、面積等。

4. 類的屬性定義應該儘可能抽象還是儘可能具體?

類的屬性定義儘可能具體吧,屬性具體點比較好區分類

答:正確的做法是應該儘可能的抽象,因為這樣更符合面向物件的思維。

5. 請用一句話概括面向物件的幾個特徵?

封裝 將類的方法、屬性封裝起來,使用方便,但是具體的實現過程被封裝起來無需知道
繼承 父子關係,
多型 同一個方法或者說函式在不同的類下都可以使用,且效果可能不同

答:

封裝 對外部隱藏物件的工作細節
繼承 子類自動共享父類之間資料和方法的機制
多型 可以對不同類的物件呼叫相同的方法,產生不同的結果

6. 函式和方法有什麼區別?

答:細心的童鞋會發現,方法跟函式其實幾乎完全一樣,但有一點區別是方法預設有一個 self 引數,這個引數是什麼意思?請聽下一講詳細分解。

動動手

0. 按照以下提示嘗試定義一個 Person 類並生成類例項物件。

程式碼清單:

class Person:
    name = '小甲魚'
    
    def printName(self):
       print(self.name)

1. 按照以下提示嘗試定義一個矩形類並生成類例項物件。

 1 class Rectangle:
 2     length = 5
 3     width = 4
 4     
 5     def setRect(self):
 6         print("請輸入矩形的長和寬...")
 7         self.length = float(input('長:'))
 8         self.width = float(input('寬:'))
 9 
10     def getRect(self):
11         print('這個矩形的長是:%.2f,寬是:%.2f' % (self.length, self.width))
12         
13     def getArea(self):
14         return self.length * self.width