真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Swift2.0對(duì)象基礎(chǔ)知識(shí)點(diǎn)有哪些-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“Swift2.0對(duì)象基礎(chǔ)知識(shí)點(diǎn)有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

丹徒網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
  • 類與實(shí)例(對(duì)象)

類“是引用類型”,而非“值類型”

使用class關(guān)鍵字定義類

     class People {

       var name:String = ""

       var age = 0

     }

   People是類名

   {}包含類的主體部分,包括屬性和行為

   命名規(guī)范:類名首字母大寫

通過類可以創(chuàng)建實(shí)例變量或?qū)嵗A?/p>

     var p1:People = People()

     let p2 = People()

   People()表示調(diào)用了People類的構(gòu)造器

實(shí)例對(duì)象通過 . 運(yùn)算符 訪問屬性和行為

  • 屬性

可以帶默認(rèn)值,也可以不帶默認(rèn)值(稍后介紹)

可以是變量,也可以是常量,常量必須有默認(rèn)值

屬性的類型也可以是可選類型

屬性可以分成兩大類:

     存儲(chǔ)屬性:占用存儲(chǔ)空間

   行為屬性:不占用存儲(chǔ)空間,訪問屬性時(shí)實(shí)際上是調(diào)用方法

靜態(tài)存儲(chǔ)屬性:

  使用static聲明,屬于整個(gè)類型而不是某個(gè)實(shí)例對(duì)象

   通過類名訪問靜態(tài)存儲(chǔ)屬性

惰性存儲(chǔ)屬性:(存儲(chǔ)屬性)

     這種屬性只有到了一段時(shí)間后或某個(gè)條件出發(fā)后才會(huì)存在

   在此之前,該屬性僅僅是占位,無(wú)存儲(chǔ)空間

   惰性屬性實(shí)現(xiàn)了類似懶加載的功能(當(dāng)屬性的值需要復(fù)雜或大量計(jì)算時(shí))

   關(guān)鍵字:lazy,必須是變量,必須有初值,如:

     class People {

       var name:String = ""

       lazy var age = 0

       func printAge() {

         print("age is \(age)")

       }

     }

     var p1:People = People()

     p1.printAge()

   在創(chuàng)建完p1實(shí)例后,通過調(diào)試器可以查看到age.storage=nil

   在調(diào)用printAge()方法后,由于訪問到了age屬性,通過調(diào)試器可以看到age.storage=0

   惰性屬性的初值通常設(shè)定為函數(shù)的返回值或?qū)ο?,以?shí)現(xiàn)懶加載的功能

行為屬性:

   雖是屬性但沒有實(shí)際存儲(chǔ)空間,提供取值訪問器get和賦值訪問器set

   行為屬性必須是變量,不能有初值

   get的語(yǔ)法:

      var 行為屬性:類型 {

        get {

             return 符合類型的值

         }

        }

   可簡(jiǎn)化為:

      var 行為屬性:類型 {

             return 符合類型的值

        }

   set的語(yǔ)法:

      var 行為屬性:類型 {

         set (newValue) {

             //操作

         }

      }

   可簡(jiǎn)化為:

      var 行為屬性:類型 {

        set {//操作}//省略的參數(shù)名默認(rèn)為newValue

      }

   如:

     class People {

       var mindDesc:String = ""

       var dream:String = ""

       var reality:String = ""

     var isHappy:Bool {

         get {

           if (!dream.isEmpty && dream == reality) || mindDesc == "Happy" {

             return true

           }

           else {

             return false

           }

         }

         set(newValue) {

           if ( newValue ) {

             mindDesc = "Happy"

           }

           else {

             mindDesc = "No Happy"

           }

         }

       }

   }

     var p1 = People()

   p1.isHappy = true

   //p1.dream = "中500萬(wàn)"

   //p1.reality = "沒中獎(jiǎng)"

     print(p1.mindDesc)

     print(p1.isHappy)

   如果不提供set賦值訪問器,則該屬性是只讀的,如:

   var isHappy:Bool {
       if (!dream.isEmpty && dream == reality) || mindDesc == "Happy" {
           return true
       }
       else {
           return false
       }

   }

類行為屬性:

   類行為屬性是一種特殊的行為屬性,屬于整個(gè)類型,而不屬于某個(gè)實(shí)例對(duì)象

   使用class修飾,通過類名訪問

   也可稱作是靜態(tài)行為屬性(static一般用于結(jié)構(gòu)體、枚舉,class用于類類型)

   語(yǔ)法:  class var 屬性名:類型 { get/set{} }

   如:

     class People {

       class var maxHeight:Float {

         return 2.40

       }

     }

     print(People.maxHeight)

屬性的觀察器:

   用于檢測(cè)屬性變化的周期,分成willSet和didSet兩個(gè)觀察期

   語(yǔ)法:willSet(newValue){}  didSet(oldValue)   //參數(shù)都可以省略

   如:

   class People {
       var salary:Int = 200 {

           willSet{

               print("工資調(diào)整了!")

           }
           didSet{
               if salary > oldValue {
                   print("漲工資了!")
               }
               else if salary < oldValue {
                   print("降工資了!")
               }
           }
       }
   }
   var p1:People = People()
   p1.salary = 300

   p1.salary = 150

   屬性觀察器實(shí)現(xiàn)了類似KVO模式的功能

   屬性觀察器同樣適用于全局變量和局部變量,其中全局變量可理解為省略了lazy的惰性行為變量

  • 方法

方法是與類型相關(guān)聯(lián)的函數(shù),是類應(yīng)具有的行為動(dòng)作,與C++/Java這些語(yǔ)言不同的是:在結(jié)構(gòu)體和枚舉中都可以定義方法

對(duì)象方法:

   實(shí)例方法通過實(shí)例對(duì)象通過.運(yùn)算符調(diào)用

   如:

   class People {
       var salary:Int = 200
       func receiveSalary(date:String)->Int {
           print("發(fā) \(date) 工資了!")
           return salary
       }
   }
   var p1:People = People()
   var s = p1.receiveSalary("2016年2月")

   print("salary is \(s)")

   在實(shí)例方法內(nèi)部可以直接訪問屬性,因?yàn)閷傩缘淖饔糜蚴窃陬惖膬?nèi)部

   在實(shí)例方法內(nèi)部可以直接調(diào)用實(shí)例方法,因?yàn)閷?shí)例方法的作用域是在類的內(nèi)部

   注意:方法也是函數(shù),函數(shù)的規(guī)則都是支持的

類方法:

   與類型屬性類似,不屬于某個(gè)實(shí)例對(duì)象,而是屬于整個(gè)類,通過類名調(diào)用

   語(yǔ)法:class func 方法名(參數(shù)列表)->返回值 {}

   也稱“靜態(tài)方法”(static用于結(jié)構(gòu)體、枚舉,class用于類類型)

   如:

   class People {
       class var desc:String {
           return "人類"
       }
       class func printDesc() {
           print("我們是\(desc)")
       }

   }

   People.printDesc()

   需要注意的是:在類方法內(nèi)部,只能訪問類行為屬性、靜態(tài)屬性和類方法

方法中的self關(guān)鍵字:

   在對(duì)象方法中,self表示當(dāng)前實(shí)例對(duì)象

   在類方法中,self表示當(dāng)前類

下標(biāo)腳本方法:

   是Swift提供的一種特殊對(duì)象方法,對(duì)象通過下標(biāo)s運(yùn)算符調(diào)用下標(biāo)方法

   語(yǔ)法:subscript(參數(shù)列表)->返回值 { get/set訪問器 }

   如:

   class People {

       var names:[Int:String] = [:]

       subscript(index:Int)->String? {
           get {
               return names[index]
           }
           set {
               names[index] = newValue
           }
       }

   }

   var p:People = People()
   p[001] = "張三"
   p[007] = "李四"
   print(p[001]!)

   print(p[007]!)

   下標(biāo)方法的參數(shù)可以是多個(gè),甚至是可變的,不能用inout修飾,不能設(shè)置默認(rèn)參數(shù)值

   下標(biāo)方法可以重載,也可以只讀,如:

   class People {

       var names:[Int:String] = [:]

       subscript(index:Int)->String? {
           get {
               return names[index]
           }
           set {
               names[index] = newValue
           }
       }
       subscript(index:Int, appendString:String )->String? {
           get {
               let s:String? = names[index]!+appendString
               return s
           }
       }

   }

   var p:People = People()
   p[001] = "張三"
   p[007] = "李四"

   print(p[001]!)

   print(p[007, "哈嘍"]!)

  • swift的訪問權(quán)限

三個(gè)訪問權(quán)限修飾符:private  internal public

   訪問權(quán)限的控制不是基于類的,而是基于文件的,即修飾標(biāo)識(shí)符在哪些源文件中可以進(jìn)行訪問

   可修飾的標(biāo)識(shí)符:類名、結(jié)構(gòu)體名、枚舉名、方法名、屬性名等

     private:只能在當(dāng)前的源文件中訪問

     internal:只能在當(dāng)前源文件所在的模塊中訪問(默認(rèn)權(quán)限,可以不寫)

     public:在任意源文件中都可以訪問

“Swift2.0對(duì)象基礎(chǔ)知識(shí)點(diǎn)有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前題目:Swift2.0對(duì)象基礎(chǔ)知識(shí)點(diǎn)有哪些-創(chuàng)新互聯(lián)
URL地址:http://weahome.cn/article/desgcc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部