第三十六課:類和對象:給大家介紹對象

內(nèi)容來源于網(wǎng)絡(luò),本人只是在此稍作整理,如有涉及版權(quán)問題,歸小甲魚官方所有。

練習(xí)題(來自小甲魚官方論壇)

0.對象中的屬性和方法,在編程中實(shí)際是什么?

答:變量(屬性)和函數(shù)(方法)。


1.類和對象是什么關(guān)系呢?

答:類和對象的關(guān)系就如同模具和用這個(gè)模具制作出的物品之間的關(guān)系。一個(gè)類為它的全部對象給出了一個(gè)統(tǒng)一的定義,而它的每個(gè)對象則是符合這種定義的一個(gè)實(shí)體,因此類和對象的關(guān)系就是抽象和具體的關(guān)系。


2.如果我們定義了一個(gè)貓類,那你能想象由“貓”類實(shí)例化的對象有哪些?

答:實(shí)例化就是對類的具體化,是一個(gè)真實(shí)的貓,比如加菲貓,哆啦A夢,Tom貓,或者你家養(yǎng)的那只小白貓……


3.類的定義有些時(shí)候或許不那么“擬物”,有時(shí)候會(huì)抽象一些,例如我們定義一個(gè)矩形類,那你會(huì)為此添加哪些屬性和方法呢?

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


4.類的屬性定義應(yīng)該盡可能抽象還是盡可能具體?

答:正確的做法是應(yīng)該盡可能的抽象,因?yàn)檫@樣更符合面向?qū)ο蟮乃季S。


5.請用一句話概括面向?qū)ο蟮膸讉€(gè)特征?

答:
封裝:對外部隱藏對象的工作細(xì)節(jié)
繼承:子類自動(dòng)共享父類之間數(shù)據(jù)和方法的機(jī)制
多態(tài):可以對不同類的對象調(diào)用相同的方法,產(chǎn)生不同的效果


6.函數(shù)和方法有什么區(qū)別?

答:函數(shù)和方法其實(shí)幾乎完全一樣,但有一點(diǎn)區(qū)別是方法默認(rèn)有一個(gè)self參數(shù),這個(gè)參數(shù)是什么意思,請聽下一講詳細(xì)分解。


編程題

0.按照以下提示嘗試定義一個(gè)Person類并生成實(shí)例對象。

屬性:姓名(默認(rèn)姓名為“小甲魚”)
方法:打印姓名
提示:方法中對屬性的引用形式需加上self,如self.name

答:代碼如下:

class Person:
    name = '小甲魚'

    def printName(self):
        print(self.name)

1.按照以下提示嘗試定義一個(gè)矩形類并生成類實(shí)例對象。

屬性:長和寬
方法:設(shè)置長和寬 -> setRect(self),獲得長和寬 -> getRect(self),獲得面積 -> getArea(self)
提示:方法中對屬性的引用形式需加上self,如self.width

答:代碼如下:

class Rectangle:
    length = 5
    width = 4

    def setRect(self):
        print("請輸入矩形的長和寬")
        self.length = float(input("長:"))
        self.width = float(input("寬:"))

    def getRect(self):
        print("這個(gè)矩形的長是:%.2f,寬是:%.2f" % (self.length, self.width))

    def getArea(self):
        return self.length * self.width

2.請寫下這一節(jié)課你學(xué)習(xí)到的內(nèi)容:格式不限,回憶并復(fù)述是加強(qiáng)記憶的好方式!

  • 對象:對象是人們要進(jìn)行研究的任何事物,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計(jì)劃或事件。對象具有狀態(tài),一個(gè)對象用數(shù)據(jù)值來描述它的狀態(tài)。對象還有操作,用于改變對象的狀態(tài),對象及其操作就是對象的行為。對象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中。
  • 類:具有相同特性(數(shù)據(jù)元素)和行為(功能)的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實(shí)例是對象,類實(shí)際上就是一種數(shù)據(jù)類型。類具有屬性,它是對象的狀態(tài)的抽象,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性。類具有操作,它是對象的行為的抽象,用操作名和實(shí)現(xiàn)該操作的方法來描述。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,656評論 1 32
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,240評論 8 265
  • 1.1面向?qū)ο?面向?qū)ο?object-oriented ;簡稱: OO)至今還沒有統(tǒng)一的概念 我這里把它定義為:...
    TENG書閱讀 636評論 0 0
  • 投資市場就好比人生,你在參與,卻不能去決定。這個(gè)市場不會(huì)時(shí)時(shí)刻刻讓你得償所愿,但會(huì)給你很多可以去規(guī)劃和爭取的空間。...
    夜里_d995閱讀 272評論 0 0
  • 成圖構(gòu)思:以貓狗人三者的關(guān)系為主圖,延伸到以歷史的角度去了解貓狗的進(jìn)化史,就會(huì)對貓狗人三者在現(xiàn)實(shí)中的關(guān)系理解得更為...
    丹菡閱讀 3,677評論 4 7

友情鏈接更多精彩內(nèi)容