




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
類7.1類與對(duì)象7.2屬性7.3方法7.4下標(biāo)腳本7.5類的嵌套7.6可選鏈接7.7綜合案例7.8上機(jī)實(shí)踐7.1類與對(duì)象7.1.1類的組成7.1.2創(chuàng)建類7.1.3實(shí)例化對(duì)象7.1.1類的組成在一個(gè)類中通??梢园瑢傩浴⑾聵?biāo)腳本和方法。屬性:它將值和特定的類關(guān)聯(lián)。下標(biāo)腳本:訪問對(duì)象、集合等的快捷方式。方法:實(shí)現(xiàn)某一特定的功能,類似于函數(shù)。7.1.2創(chuàng)建類類的創(chuàng)建其實(shí)就是對(duì)類進(jìn)行的聲明,只有在聲明了類之后,才可以使用此類。創(chuàng)建類需要使用到class關(guān)鍵字,其語(yǔ)法形式如下:class類名{
//具體內(nèi)容}7.1.3實(shí)例化對(duì)象實(shí)例化對(duì)象就是將創(chuàng)建的類進(jìn)行具體化,其實(shí)就是定義類。其語(yǔ)法形式如下:var/let對(duì)象名=類名()7.2屬性7.2.1存儲(chǔ)屬性7.2.2計(jì)算屬性7.2.3類型屬性7.2.4屬性監(jiān)視器7.2.1存儲(chǔ)屬性存儲(chǔ)屬性就是存儲(chǔ)特定類或者結(jié)構(gòu)(結(jié)構(gòu)會(huì)在后面的章節(jié)中進(jìn)行講解)中的一個(gè)常量或者變量。1.定義存儲(chǔ)屬性存儲(chǔ)屬性可以根據(jù)數(shù)據(jù)是否可變,分為兩種:一種是常量存儲(chǔ)屬性;另一種是變量存儲(chǔ)屬性。存儲(chǔ)屬性的聲明和定義是在一起進(jìn)行的。在編程中如果聲明定義一起進(jìn)行,可以將聲明定義稱為定義。定義常量存儲(chǔ)屬性需要使用到let關(guān)鍵字,其定義的語(yǔ)法形式如下:let常量存儲(chǔ)屬性名:數(shù)據(jù)類型=初始值變量存儲(chǔ)屬性可以使用var關(guān)鍵字定義,其定義的語(yǔ)法形式如下:var變量存儲(chǔ)屬性名:數(shù)據(jù)類型=初始值2.訪問存儲(chǔ)屬性存儲(chǔ)屬性是可以進(jìn)行訪問的。要實(shí)現(xiàn)訪問功能,需要使用到“.”運(yùn)算符,其語(yǔ)法形式如下:對(duì)象名.常量存儲(chǔ)屬性名/變量存儲(chǔ)屬性名3.修改存儲(chǔ)屬性存儲(chǔ)屬性是可以進(jìn)行修改的,如果在定義存儲(chǔ)屬性時(shí),對(duì)存儲(chǔ)屬性初始化的值不滿意,開發(fā)者可以對(duì)該存儲(chǔ)屬性進(jìn)行修改。修改存儲(chǔ)屬性還需要使用到“.”點(diǎn)運(yùn)算符,其語(yǔ)法形式如下:對(duì)象名.存儲(chǔ)屬性=修改的內(nèi)容4.延遲存儲(chǔ)屬性如果開發(fā)者只有在第一次調(diào)用存儲(chǔ)屬性時(shí)才能確定初始值,這時(shí)需要使用延遲存儲(chǔ)屬性實(shí)現(xiàn)。它的定義一般需要使用關(guān)鍵字lazy實(shí)現(xiàn)的,其語(yǔ)法形式如下:lazyvar屬性名:數(shù)據(jù)類型=初始內(nèi)容7.2.2計(jì)算屬性在類中除了可以定義存儲(chǔ)屬性外,還可以定義計(jì)算屬性。計(jì)算屬性不存儲(chǔ)值,而是提供了一個(gè)getter和setter來(lái)分別進(jìn)行獲取值和設(shè)置其他屬性的值。getter使用get關(guān)鍵字進(jìn)行定義,其一般形式如下:get{
…
return某一屬性值}setter使用set關(guān)鍵字進(jìn)行定義,其一般語(yǔ)法形式如下:set(參數(shù)名稱){
…屬性值=某一個(gè)值
…}7.2.2計(jì)算屬性在計(jì)算屬性中同時(shí)包含了getter和setter,其一般定義形式如下:var屬性名:數(shù)據(jù)類型{get{
…
return某一屬性值}set(參數(shù)名稱){
… 屬性值=某一個(gè)值
…
}}1.不定義set后面的參數(shù)名稱如果在計(jì)算屬性的setter中(即set后面)沒有定義表示新值的參數(shù)名,則可以使用默認(rèn)名稱newValue。2.可以使用getter在計(jì)算屬性中,如果只有一個(gè)getter,則稱為只讀計(jì)算屬性。只讀計(jì)算屬性可以返回一個(gè)值,但不能設(shè)置新的值。7.2.3類型屬性類型屬性就是不需要對(duì)類進(jìn)行實(shí)例化就可以使用的屬性。它需要使用關(guān)鍵字static進(jìn)行定義,其中定義存儲(chǔ)型類型屬性時(shí)的語(yǔ)法形式如下:static
var類型屬性名:數(shù)據(jù)類型=初始值定義計(jì)算型類型屬性的語(yǔ)法形式如下:static
var類型屬性名:數(shù)據(jù)類型{
…返回一個(gè)值}1.訪問類型屬性類型屬性和以存儲(chǔ)屬性、計(jì)算屬性一樣,也是可以被訪問的,其訪問類型屬性的一般形式如下:類名.類型屬性2.修改類型屬性類型屬性和存儲(chǔ)屬性一樣,除了可以進(jìn)行訪問外,還可以進(jìn)行修改,其語(yǔ)法形式如下:類名.類型屬性=修改的內(nèi)容7.2.4屬性監(jiān)視器屬性監(jiān)視器用來(lái)監(jiān)控和響應(yīng)屬性值的變化。每次屬性被設(shè)置值的時(shí)候,都會(huì)調(diào)用屬性監(jiān)視器,哪怕是新的值和原先的值相同。一個(gè)屬性監(jiān)視器由willSet和didSet組成,其定義形式如下:var屬性名:數(shù)據(jù)類型=初始值{willSet(參數(shù)名){
…}didSet(參數(shù)名){
…
}}1.不指定參數(shù)名在willSet后面是可以不指定參數(shù)的,這時(shí)Swift會(huì)使用默認(rèn)newValue表示新值。2.分開使用willSet和didSet一個(gè)完整的屬性監(jiān)視器由willSet和didSet組成,但是willSet和didSet也可以單獨(dú)使用。7.3方法7.3.1實(shí)例方法7.3.2類型方法7.3.3存儲(chǔ)屬性、局部變量和全局變量的區(qū)別7.3.4局部變量和存儲(chǔ)屬性同名的解決方法——self屬性7.3.1實(shí)例方法實(shí)例方法為給定類型的實(shí)例封裝了具體的任務(wù)與功能。在類中可以定義實(shí)例方法,它需要由類的實(shí)例調(diào)用。實(shí)例方法和函數(shù)一樣,分為了不帶參數(shù)和帶參數(shù)兩種。以下依次講解這兩種方法的使用。1.不帶參數(shù)的實(shí)例方法不帶參數(shù)的實(shí)例方法定義和函數(shù)的是一樣的,其語(yǔ)法形式如下:func方法名()->返回值類型{
…}但它的調(diào)用形式和函數(shù)的有所不同,其調(diào)用形式如下:對(duì)象名.方法名()2.帶有參數(shù)的實(shí)例方法具有參數(shù)的實(shí)例方法就是在方法名后面的括號(hào)中添加了參數(shù)列表。它的定義也和函數(shù)一樣,定義形式如下:func方法名(參數(shù)名1:數(shù)據(jù)類型,參數(shù)名2:數(shù)據(jù)類型,…)->返回值類型{
…}它的調(diào)用形式如下:對(duì)象名.方法名(參數(shù)值1,參數(shù)名2:參數(shù)值2,…)7.3.2類型方法實(shí)例方法是被類型的某個(gè)實(shí)例調(diào)用的方法。而類型方法則是被類本身調(diào)用的方法。在類中不僅可以定義實(shí)例方法,還可以定義類型方法。其中,類型方法也可以和實(shí)例方法一樣,分為不帶參數(shù)的類型方法和帶有參數(shù)的類型方法。1.不帶參數(shù)的類型方法定義帶到參數(shù)的類型方法可以實(shí)現(xiàn)static關(guān)鍵字進(jìn)行定義,其語(yǔ)法形式如下:staticfunc方法名()->返回值類型{
…}除了可以使用關(guān)鍵字static對(duì)不帶參數(shù)的類型方法進(jìn)行定義外,還可以使用class關(guān)鍵字對(duì)不帶參數(shù)的類型方法進(jìn)行定義,其語(yǔ)法形式如下:classfunc方法名()->返回值類型{
…}不帶參數(shù)的類型方法的調(diào)用形式如下:類名.方法名()2.具有參數(shù)的類型方法具有參數(shù)的類型方法在定義時(shí)有兩種形式,一種是使用static關(guān)鍵字,其語(yǔ)法形式如下:staticfunc方法名(參數(shù)名1:數(shù)據(jù)類型,參數(shù)名2:數(shù)據(jù)類型,…){
…}另一種是使用class關(guān)鍵字,其語(yǔ)法形式如下:classfunc方法名(參數(shù)名1:數(shù)據(jù)類型,參數(shù)名2:數(shù)據(jù)類型,…){
…}定義好類型方法后就可以進(jìn)行調(diào)用了,調(diào)用具有參數(shù)的類型方法的語(yǔ)法形式如下:類名.方法名(參數(shù)值1,參數(shù)名2:參數(shù)值2,…)7.3.3存儲(chǔ)屬性、局部變量和全局變量的區(qū)別存儲(chǔ)屬性可以理解為變量的一種。所以隨著變量使用地方的不同,可以將變量分為存儲(chǔ)屬性、局部變量和全局變量。變量名稱定義范圍存儲(chǔ)屬性定義在類中局部變量函數(shù)、方法或閉包內(nèi)部全局變量函數(shù)、方法、閉包或任何類型之外定義的變量7.3.4局部變量和存儲(chǔ)屬性同名的解決方法——self屬性在一個(gè)類中,方法中的局部變量可能和存儲(chǔ)屬性同名。這時(shí),不能直接使用相同的名稱去訪問存儲(chǔ)屬性,為了解決這一問題,Swift引入了一個(gè)self屬性。7.4下標(biāo)腳本7.4.1定義下標(biāo)腳本7.4.2調(diào)用下標(biāo)腳本7.4.3使用下標(biāo)腳本7.4.1定義下標(biāo)腳本下標(biāo)腳本可以定義在類(Class)、結(jié)構(gòu)體(structure)和枚舉(enumeration)中(對(duì)于結(jié)構(gòu)體和枚舉會(huì)在后面的章節(jié)中進(jìn)行),其語(yǔ)法形式如下:subscript(參數(shù)名稱1:數(shù)據(jù)類型,參數(shù)名稱2:數(shù)據(jù)類型,…)->返回值的數(shù)據(jù)類型{
get{
//返回與參數(shù)類型匹配的類型的值
}
set(參數(shù)名稱){
//執(zhí)行賦值操作
}}7.4.2調(diào)用下標(biāo)腳本定義好下標(biāo)腳本后,就可以進(jìn)行調(diào)用了,其調(diào)用形式如下:實(shí)例對(duì)象[參數(shù)1,參數(shù)2,…]其中,[]和它里面的內(nèi)容就代表了在類中定義的下標(biāo)腳本。7.4.3使用下標(biāo)腳本下標(biāo)腳本可以根據(jù)傳入?yún)?shù)的不同,分為具有一個(gè)傳入?yún)?shù)的下標(biāo)腳本和具有多個(gè)傳入?yún)?shù)的下標(biāo)腳本。以下就是對(duì)這兩個(gè)下標(biāo)腳本在類中的使用。1.具有一個(gè)傳入?yún)?shù)的下標(biāo)腳本具有一個(gè)傳入?yún)?shù)的下標(biāo)腳本是最常見的。在集合以及字符串中使用的下標(biāo)就是具有一個(gè)傳入?yún)?shù)的下標(biāo)腳本。2.具有多個(gè)參數(shù)的下標(biāo)腳本具有多個(gè)入?yún)?shù)的下標(biāo)腳本一般使用在多維數(shù)組中。7.5類的嵌套7.5.1直接嵌套7.5.2多次嵌套7.5.1直接嵌套當(dāng)一個(gè)類或者多個(gè)類直接嵌套在另外一個(gè)類,這時(shí)就構(gòu)成直接嵌套。7.5.2多次嵌套多次嵌套就是在類1中嵌套類2,但是在類2中有嵌套了類3,依次類推。7.6可選鏈接7.6.1使用可選鏈?zhǔn)秸{(diào)用代替強(qiáng)制解析7.6.2通過可選鏈接調(diào)用屬性、下標(biāo)腳本、方法7.6.3連接多個(gè)鏈接7.6.1使用可選鏈?zhǔn)秸{(diào)用代替強(qiáng)制解析開發(fā)者可以在想要調(diào)用的屬性、下標(biāo)腳本和方法的可選值后面添加一個(gè)“?”問號(hào)來(lái)進(jìn)行可選鏈接的定義。開發(fā)者通過對(duì)選鏈?zhǔn)秸{(diào)用可以代替強(qiáng)制解析。7.6.2通過可選鏈接調(diào)用屬性、下標(biāo)腳本、方法開發(fā)者可以使用可選鏈接的可選值來(lái)調(diào)用屬性、下標(biāo)腳本和方法,并檢查這些內(nèi)容調(diào)用是否成功,1.調(diào)用屬性通過可選鏈接調(diào)用屬性的語(yǔ)法形式如下:可選鏈接.屬性名
//調(diào)用屬性2.調(diào)用方法通過可選鏈接調(diào)用方法的語(yǔ)法形式如下:可選鏈接.方法
//調(diào)用方法3.調(diào)用下標(biāo)腳本通過可選鏈接調(diào)用下標(biāo)腳本的語(yǔ)法形式如下:可選鏈接.[下標(biāo)]
//調(diào)用下標(biāo)腳本7.6.3連接多個(gè)鏈接開發(fā)者可以通過連接多個(gè)可選鏈?zhǔn)秸{(diào)用在更深的模型層級(jí)中屬性、方法以及下標(biāo)。然而,多層可選鏈?zhǔn)秸{(diào)用不會(huì)增加返回值的可選層級(jí)。7.7綜合案例7.7.1收支情況7.7.2根據(jù)周長(zhǎng),計(jì)算面積7.7.1收支情況【程序7-28】有一個(gè)工程師,有存款2
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字化技術(shù)對(duì)口腔臨床實(shí)習(xí)質(zhì)量提升的影響研究
- 基于OBSStudio的虛擬教室場(chǎng)景設(shè)計(jì)與教學(xué)優(yōu)化
- 社會(huì)福利體系完善對(duì)勞動(dòng)力流入的促進(jìn)作用
- 提高小學(xué)數(shù)學(xué)課堂教學(xué)有效性的對(duì)策與方法
- 綠色農(nóng)業(yè)發(fā)展模式對(duì)農(nóng)業(yè)經(jīng)濟(jì)增長(zhǎng)的影響
- 中南大學(xué)湘雅醫(yī)學(xué)院附屬株洲市中心醫(yī)院招聘筆試真題2024
- 2024年青島港灣職業(yè)技術(shù)學(xué)院招聘專業(yè)人才真題
- 河源市事業(yè)單位招聘筆試真題2024
- 安徽大學(xué)專職輔導(dǎo)員招聘筆試真題2024
- 2024年河北勞動(dòng)關(guān)系職業(yè)學(xué)院輔導(dǎo)員考試真題
- DLT-969-2023年變電站運(yùn)行導(dǎo)則
- 【中考真題】2023年浙江嘉興中考?xì)v史與社會(huì).道德與法治試題及答案
- GB/T 42599-2023風(fēng)能發(fā)電系統(tǒng)電氣仿真模型驗(yàn)證
- 《電子技術(shù)基礎(chǔ)》期末考試復(fù)習(xí)題庫(kù)(含答案)
- TD-T 1070.1-2022 礦山生態(tài)修復(fù)技術(shù)規(guī)范 第1部分:通則
- 平壓平模切機(jī)安全操作規(guī)程、風(fēng)險(xiǎn)告知卡、應(yīng)急處置
- 紅樓夢(mèng)思辨讀寫導(dǎo)學(xué)全案
- GB/T 17626.4-2018電磁兼容試驗(yàn)和測(cè)量技術(shù)電快速瞬變脈沖群抗擾度試驗(yàn)
- 活性炭改性及吸附條件研究性實(shí)驗(yàn)
- PPT用中國(guó)地圖(可編輯)
- 小學(xué)體育教研活動(dòng)記錄(有內(nèi)容)
評(píng)論
0/150
提交評(píng)論