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

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

swift篇第三期:類、枚舉、結(jié)構(gòu)體

首先我們來創(chuàng)建一個(gè)類吧,然后在里面聲明屬性與方法

創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)京口,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

 
class BaseUser {
    var userName:String = "swh"
    var password:String = "123"
    
    //這里面有一個(gè)構(gòu)造方法,其實(shí)就類似我們重寫init方法一樣,然后可以加些參數(shù)
    //但是我們在聲明該類的時(shí)候直接在類名后面接括號就可以了哦
    init(username:String, password:String) {
        self.userName = username
        self.password = password
    }
    
    var name:String {
    //下面是set方法的兩種定義
        set (value) {
            self.userName = value
            println("method set")
        }
//        set {
//            self.userName = newValue
//            println("method set")
//        }
        get {
            println("method get")
            return self.userName
        }
    }
    
    func toString()-> String {
        return "username:\(self.userName):\(self.password)"
    }
}

這時(shí)候我們來調(diào)用對應(yīng)的屬性與方法

 
//聲明并初始化
var user = BaseUser(username: "kutian", password: "123456")

println(user.toString())

user.name = "kutian"

println("\(user.name)  \(user.password)")

接下來,我們繼續(xù)創(chuàng)建一個(gè)類來繼承之前的類

繼承,跟大家想的沒聲明區(qū)別

 
class AdminUser: BaseUser {
    var managerModel:String = "爐石傳說"
    
    override func toString() -> String {
        return "爐石傳說"
    }
}

var adminUser = AdminUser(username: "swh", password: "123")

println(adminUser.toString())

好啦,接下來我們創(chuàng)建枚舉

我們可以直接賦值,也可以弄一個(gè)方法,讓它返回新值

 
enum Suit:String {
    case Spades = "黑桃", Hearts = "紅桃", Diamonds = "方塊", Clubs = "梅花"
    func toString()-> String {
        switch self {
        case .Spades:
            return "黑桃"
        case .Hearts:
            return "紅桃"
        case .Diamonds:
            return "方塊"
        case .Clubs:
            return "梅花"
        default :
            return "鬼牌"
        }
    }
}

然后調(diào)用枚舉里面涉及到的一些方法

這里面有新的rawValue還有!是把任意nil轉(zhuǎn)為正常的哦

 
var suit = Suit.Hearts

println(suit.rawValue)

let tempSuit = Suit(rawValue: "梅花")

println(tempSuit!.rawValue)

我們也可以新建一個(gè)類,并在里面聲明某個(gè)屬性是枚舉類型

好啦,我們來創(chuàng)建一個(gè)結(jié)構(gòu)體吧

 
struct Hero {
    static var isGirl:Bool = false
    var rank:Rank
    var name:CompassPointType
    
    func toString()-> String {
        return "\(name):\(rank.rawValue)"
    }
}

其實(shí)它跟類還是差不多的,只是它傳值的時(shí)候并不涉及傳地址哦

然后我們來寫個(gè)協(xié)議吧

 
protocol SimpleProtocol {
    var value:String {get}
    
    func toString()-> String
    mutating func update()
}
 
protocol BaseProtocol {
    func equal()-> Bool
}

class SuperClass {
    var name:String = "swh"
}

接下來創(chuàng)建一個(gè)類來遵循并實(shí)現(xiàn)這個(gè)協(xié)議

 
class SubClss: SuperClass, SimpleProtocol, BaseProtocol {
    var value:String = "defalut"
    
    func toString()-> String {
        return value
    }
    
    func update() {
        value = "new value"
    }
    
    func equal() -> Bool {
        return false
    }
}

再接下來,我們再寫一個(gè)擴(kuò)展好了

 
class Rect {
    var width:Int = 50
    var height:Int = 100
}

extension Rect:BaseProtocol {
    func area()-> Int {
        return width * height
    }
    
    func equal() -> Bool {
        return height == width
    }
}
 
extension Int {
    func toString()-> String {
        return "你猜"
    }
}

類和協(xié)議就比較好理解了,與O-C沒有什么區(qū)別的哦

OK,就這么多咯


網(wǎng)站名稱:swift篇第三期:類、枚舉、結(jié)構(gòu)體
文章URL:http://weahome.cn/article/gscgec.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部