import UIKit
class Student
{
private var name: String = ""
private var age: Int = -1
private var score: Double = -1.0
private var ispass: Bool = false
public static let schoolName = "哈尔滨佛学院"
// 一个初始化器调用另一个初始化器需要关键字convenience
// convenience init() {
// self.init()
// }
convenience init() {
self.init(name:"unknow",age:0,score:0.0)
}
init(name:String,age:Int,score:Double) {
self.name = name
self.age = age
isPass(param: score)
}
private func isPass(param:Double){
self.score = param
if self.score < 60 {
self.ispass = false
}else{
self.ispass = true
}
}
public func setScore(score: Double) {
self.isPass(param: score)
}
public func getIsPass() -> Bool {
return self.ispass
}
public func getName() -> String{
return self.name
}
public func getAge() -> Int{
return self.age
}
public func getScore() -> Double{
return self.score
}
}
var s1 = Student()
print(s1.getName())
var s2 = Student(name: "小a", age: 17, score: 45)
print("姓名: " + s2.getName())
print("年龄: " + String(s2.getAge()))
//类的计算属性set,get 类的属性观察 willset,didset
class Person
{
private var value:String = ""
var name:String{
set{
self.value = newValue
print("set - " + newValue)
}
get{
return "get - " + self.value
}
}
var age:Int = -1
{
willSet{
print("newValue = " + String(newValue))
}
didSet{
print("oldValue = " + String(oldValue))
}
}
}
var person = Person()
person.name = "hello"
print(person.name)
print("___________________")
person.age = 18
class Data{
private var array1: [String] = ["Apple", "Google"]
private var array2: [String] = ["android", "ios"]
// 使用下标例子
// 可以使用多个参数
subscript(index1:Int, index2: Int) -> String
{
// 用不上set不写
get{
return array1[index1] + "-" + array2[index2]
}
}
}
var data = Data()
print(data[0,0])
print(data[0,1])
swift--类,计算属性,属性观察,类的下标语法
最新推荐文章于 2022-03-23 15:33:08 发布