類和類型

來源:互聯網
上載者:User

1:  類型的概念

概念:類型刻划了一組值及其上可施行的操作,可理解為值集和操作集構成的二元組。

類型的概念與值的概念相對立,前者是程式中的概念,後者則是程式運行時的概念,兩者通過標識值的語言成分(例如,變數、運算式等)聯絡起來。

比如變數v說明為具有類型T,類型T所刻劃的值集為{v1,v2,…vn,…},則變數v運行時能取且只能取某個vi為值。由此可見,類型規定了具有該類型的變數或運算式的取值範圍。

2:  類與類型

A:      共性

在對象式語言中,“值”為對象(或對象指引,但本質上仍為對象)。所以,對象式語言中的類型刻划了一組對象及其上可施行的操作。類型所刻劃的對象稱為類型的執行個體。類也刻划了一組對象。

兩者的共性在於二者均刻划了一組對象及其上的操作(在前面關於類的討論中,並未強調類刻劃對象上的操作這一事實),所以,既可以說對象是類型的執行個體,也可以說對象是類的執行個體,類型和類在與對象的關係上是相同的。不過,類型欲刻劃一組對象及其上的操作,必須藉助於類,因為類是達到這種目的的唯一設施。由此可見,類型是以類為基礎的,是通過類來定義的,這體現了二者的聯絡。

B:     區別

l       作用不同

類是程式的構造單位,是描述一組對象及其上操作的唯一語言成分,故其作用主要是具體描述這組對象,提供運行時建立這些對象的“模板”。例如,基於類間的繼承關係的衍生類別定義設施就反映了類在描述對象方面的作用。

類型則是標誌變數或運算式取值範圍的一種語言成分,其作用主要是對這些變數或運算式運行時的取值進行約束。例如,對指派陳述式左部的變數和右部的運算式的類型匹配檢查就反映了類型的約束作用。

l       與對象聯絡的緊密程式不同

類描述對象的具體形式和其上可施行的具體操作,且強調所描述的一組對象的共性,因而,與具體對象聯絡較密切,而與對象集的大小則聯絡較少。

類型強調所描述的一組對象的範圍和可施行操作的範圍,與對象集的大小聯絡較密切,而與其中具體對象則聯絡較少。

l       並不是所有類都可直接作為類型使用

類是類型的基礎,類型靠類來定義,有些類可直接作為類型來使用,在這種意義下,我們也可稱這些類是類型。

但是,也有一些類不能直接作為類型來使用,這是因為,從類型的約束作用來看,類型強調所刻劃的對象的確定性,即物件範圍的確定性。因此,只有所描述的對象的範圍確定的類才可直接用作類型。

我覺得大家都應該靜下心來,仔細的讀一讀這篇文章。原作:徐家福

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.