国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Swift面向?qū)ο笤斀?/h1>
2019-11-14 18:50:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1,首先來(lái)看看如何在Swift中定義一個(gè)類和類里面的屬性、構(gòu)造函數(shù)、方法及類方法

import Foundationclass Hello{    //成員屬性    var _name:NSString?="jikexueyuan"    //構(gòu)造函數(shù)    init(){          }    //重載構(gòu)造函數(shù)    init(name:NSString){        _name = name    }    //方法    func sayHello(){        PRintln("Hello /(_name)")    }    //類方法    class func sayHi(){        println("Hello Swift")    }}var hello = Hello(name: "chen")hello.sayHello()Hello.sayHi()

 

2,在Swift中繼承是跟C#一樣使用冒號(hào)的形式來(lái)表示。一旦某個(gè)類繼承了它的父類,就同時(shí)有了父類的屬性和方法。在子類中可以重寫(xiě)父類的方法也可以調(diào)用父類的方法。

class Hi:Hello {    //重寫(xiě)父類方法    override func sayHello() {        super.sayHello()//調(diào)用父類方法        println("Hi /(_name)")    }}var hi = Hi()hi.sayHello()

 

3,在程序編寫(xiě)的過(guò)程中有的時(shí)候我們會(huì)使用到第三方類庫(kù)或者使用系統(tǒng)的類庫(kù)的時(shí)候,發(fā)現(xiàn)這些類庫(kù)中某些類需要擴(kuò)展則可以使用extension關(guān)鍵詞來(lái)實(shí)現(xiàn)。若子類繼承帶有extension擴(kuò)展的父類,相應(yīng)的子類也應(yīng)該會(huì)有擴(kuò)展的方法。

//類的動(dòng)態(tài)擴(kuò)展extension Hi{    func sayHaha(){        println("Haha")    }}hi.sayHaha()

 

4,在Swift中接口使用protocol關(guān)鍵字來(lái)定義

protocol Person{    func getName()->NSString}class Man: Person {    func getName() -> NSString {        return "jikexueyuan"    }}var man = Man()var hiMan = Hi(name: man.getName())hiMan.sayHello()

 

5,由于多態(tài)的繼承特性,使得編碼中有了子類與父類的轉(zhuǎn)型,即向上轉(zhuǎn)型和向下轉(zhuǎn)型。有向上轉(zhuǎn)型是把一個(gè)子類的實(shí)例直接賦給一個(gè)父類的引用變量、不用任何的類型轉(zhuǎn)換。引用變量只能在編譯時(shí)才能轉(zhuǎn)換為實(shí)際的類型,這種強(qiáng)制轉(zhuǎn)換為向下轉(zhuǎn)型。

//向上轉(zhuǎn)型let obj : NSObject = "Hello"println(obj)//向下轉(zhuǎn)型let objStr : NSString = obj as! NSStringprintln(objStr)

 

6,在Swift中命名空間使用類的嵌套的方法去實(shí)現(xiàn),但是當(dāng)命名空間嵌套很復(fù)雜且命名空間里的類會(huì)非常多的時(shí)候會(huì)顯得很臃腫。這個(gè)時(shí)候可以在一個(gè)Swift文件中定義命名空間的嵌套,在另外一個(gè)Swift文件中使用extension關(guān)鍵字來(lái)擴(kuò)展命名空間,最后在使用到的文件中直接調(diào)用就可以了。

//---Space.swiftclass com{    class jikexueyuan{        }}//---Hello.swiftextension com.jikexueyuan{    class Hello {        func sayHello(){            println("Hello")        }    }}//---Hi.swiftextension com.jikexueyuan{    class Hi  {        func sayHi(){            println("Hi")        }    }}//---Main.swiftvar spaceHello = com.jikexueyuan.Hello()spaceHello.sayHello()var spaceHi = com.jikexueyuan.Hi()spaceHi.sayHi()




發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

主站蜘蛛池模板: 东阿县| 松阳县| 清镇市| 阿拉尔市| 余庆县| 青州市| 石首市| 长海县| 湘阴县| 沈丘县| 南昌县| 嘉峪关市| 安多县| 宣化县| 琼海市| 喀喇沁旗| 大悟县| 威信县| 绿春县| 东兰县| 衡阳市| 丹棱县| 武强县| 竹北市| 荣昌县| 吉隆县| 封丘县| 永福县| 凤台县| 新化县| 信丰县| 民权县| 长沙县| 黄骅市| 伊金霍洛旗| 衢州市| 阿拉尔市| 阳信县| 竹北市| 久治县| 金乡县|