類和結(jié)構(gòu)體是人們構(gòu)建代碼所用的一種通用且靈活的構(gòu)造體破讨。我們可以使用完全相同的語法規(guī)則來為類和結(jié)構(gòu)體定義屬性(常量、變量)和添加方法珍手,從而擴(kuò)展類和結(jié)構(gòu)體的功能准夷。
Switf結(jié)構(gòu)體特點(diǎn):
Swift 并不要求你為自定義類和結(jié)構(gòu)去創(chuàng)建獨(dú)立的接口和實現(xiàn)文件类溢。你所要做的是在一個單一文件中定義一個類或者結(jié)構(gòu)體凌蔬,系統(tǒng)將會自動生成面向其它代碼的外部接口。
注意
通常一個類的實例被稱為對象豌骏。然而在 Swift 中龟梦,類和結(jié)構(gòu)體的關(guān)系要比在其他語言中更加的密切,本章中所討論的大部分功能都可以用在類和結(jié)構(gòu)體上窃躲。因此计贰,我們會主要使用實例而不是對象。
類和結(jié)構(gòu)體對比
Swift 中類和結(jié)構(gòu)體有很多共同點(diǎn)蒂窒。共同處在于:
定義屬性用于存儲值
定義方法用于提供功能
定義下標(biāo)操作使得可以通過下標(biāo)語法來訪問實例所包含的值
定義構(gòu)造器用于生成初始化值
通過擴(kuò)展以增加默認(rèn)實現(xiàn)的功能
實現(xiàn)協(xié)議以提供某種標(biāo)準(zhǔn)功能
與結(jié)構(gòu)體相比躁倒,類還有如下的附加功能:
繼承允許一個類繼承另一個類的特征
類型轉(zhuǎn)換允許在運(yùn)行時檢查和解釋一個類實例的類型
析構(gòu)器允許一個類實例釋放任何其所被分配的資源
引用計數(shù)允許對一個類的多次引用