import UIKit
//1. 類的定義
class Person{
//如何屬性為值類型淆院,則初始化為空值
// 如何屬性是對象類型何乎,則初始化為nil值
var name : String = ""
var age : Int = 0
var view : UIView?
}
let p = Person()
p.name = "flower"
p.age = 10
//2. 類的屬性
//存儲屬性:存儲實例的常量和變量
//計算屬性:通過某種方式計算出來的屬性
//類屬性:與整個類自身相關(guān)的屬性
class Student{
var name : String = ""
var age : Int = 0
var mathScore : Double = 0.0
var chineseScore : Double = 0.0
var average : Double{
return (mathScore + chineseScore) * 0.5
}
static var courseCount : Int = 0
}
let stu = Student()
stu.age = 10
stu.name = "floser"
stu.mathScore = 100
stu.average
Student.courseCount = 10
//3. 屬性監(jiān)聽
class animal{
var name : String = ""{
// willSet{
// print("即將發(fā)生改變")
// }
// didSet{
// print("已經(jīng)發(fā)生改變")
// }
// willSet{
// print(newValue)
// print("即將發(fā)生改變")
// }
// didSet{
// print(oldValue)
// print("已經(jīng)發(fā)生改變")
// }
willSet(newName){
print(newName)
print("即將發(fā)生改變")
}
didSet(oldName){
print(oldName)
print("已經(jīng)發(fā)生改變")
}
}
}
let a = animal()
a.name = "dog"
//4.類的構(gòu)造函數(shù)
//4.1
class Cat{
var name : String = ""
var age : Int = 0
//在swift中,如果在對象函數(shù)中迫筑,用到成員屬性宪赶,self. 可以省略
// 但是宗弯,如果在函數(shù)中脯燃,有和成員屬性重名的局部變量,那么self.不能省略
// 如果有自定的構(gòu)造函數(shù)蒙保,那么會將系統(tǒng)提供的成員函數(shù)覆蓋掉
init() {
}
init(name : String, age : Int) {
self.name = name
self.age = age
}
init(dict : Dictionary<String,Any>) {
if let name = dict["name"] as? String{
self.name = name
}
if let age = dict["age"] as? Int {
self.age = age
}
}
}
let c = Cat(dict: ["name" : "huahua", "age" : 10, "height" : 1.8])
//4.2 使用kvc: 需滿足的條件
//必須繼承NSObject
//必須在構(gòu)造函數(shù)中,先調(diào)用super.init()
//調(diào)用setValuesForKeys
//如何字典中沒有一個key所對應(yīng)的屬性,需要重寫set
class Dog : NSObject{
var name : String = ""
var age : Int = 0
var height : Double = 0.0
init(dict : [String : Any]) {
super.init()
setValuesForKeys(dict)
}
override func setValue(_ value: Any?, forKey key: String) {
}
}
let d = Dog(dict: ["name" : "huahua", "age" : 10, "height" : 1.8])
print(d.name)
//5. 析構(gòu)函數(shù)
class Rabbit{
var name : String = ""
var age : Int = 0
deinit {
print("Rabbit -- deinit")
}
}
var r : Rabbit? = Rabbit()
r = nil
swift 類的創(chuàng)建
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門叽掘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來楣铁,“玉大人,你說我怎么就攤上這事更扁「峭螅” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵浓镜,是天一觀的道長溃列。 經(jīng)常有香客問我,道長竖哩,這世上最難降的妖魔是什么哭廉? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮相叁,結(jié)果婚禮上遵绰,老公的妹妹穿的比我還像新娘。我一直安慰自己增淹,他們只是感情好椿访,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虑润,像睡著了一般成玫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拳喻,一...
- 文/蒼蘭香墨 我猛地睜開眼腐缤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肛响?” 一聲冷哼從身側(cè)響起岭粤,我...
- 正文 年R本政府宣布煤惩,位于F島的核電站嫉嘀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏魄揉。R本人自食惡果不足惜剪侮,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望洛退。 院中可真熱鬧瓣俯,春花似錦、人聲如沸兵怯。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽媒区。三九已至驼仪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間袜漩,已是汗流浹背绪爸。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- Swift中用類名字符串創(chuàng)建類(用到了命名空間) OC中可以直接通過類名的字符串轉(zhuǎn)換成對應(yīng)的類來操作,但是Swif...
- 寫項目遇到過一次奇葩的問題,swift調(diào)用OC創(chuàng)建的類debug狀態(tài)下沒有問題嬉愧,release時編譯報錯贩挣。 最后的...
- swift支持c++的缺省參數(shù)
- 短短的清明小長假一過王财,3月就結(jié)束了,一年的1/4也該劃上句號了裕便∪蘧唬回頭想想,這三個月偿衰,我到底收獲了什么挂疆?或者說,我是...