class Student : NSObject {
// 定义属性 // 存储属性 var age : Int = 0 var name : String? var chineseScore : Double = 0.0 var mathScore : Double = 0.0 } // 创建学生对象 let stu = Student() // 给存储属性赋值 stu.age = 10 stu.name = "why" stu.chineseScore = 89.0 stu.mathScore = 98.0
一般
只提供getter方法class Student : NSObject {
// 定义属性 // 存储属性 var age : Int = 0 var name : String? var chineseScore : Double = 0.0 var mathScore : Double = 0.0 // 计算属性 var averageScore : Double { get { return (chineseScore + mathScore) / 2 } // 没有意义,因为之后获取值时依然是计算得到的 // newValue是系统分配的变量名,内部存储着新值 set { self.averageScore = newValue } } } // 获取计算属性的值 print(stu.averageScore)
class Student : NSObject {
// 定义属性 // 存储属性 var age : Int = 0 var name : String? var chineseScore : Double = 0.0 var mathScore : Double = 0.0 // 计算属性 var averageScore : Double { get { return (chineseScore + mathScore) / 2 } // 没有意义.newValue是系统分配的变量名,内部存储着新值 set { self.averageScore = newValue } } // 类属性 static var corseCount : Int = 0 } // 设置类属性的值 Student.corseCount = 3 // 取出类属性的值 print(Student.corseCount)
class Person : NSObject {
var name : String? { // 可以给newValue自定义名称 willSet (new){ // 属性即将改变,还未改变时会调用的方法 // 在该方法中有一个默认的系统属性newValue,用于存储新值 print(name) print(new) } // 可以给oldValue自定义名称 didSet (old) { // 属性值已经改变了,会调用的方法 // 在该方法中有一个默认的系统属性oldValue,用于存储旧值 print(name) print(old) } } var age : Int = 0 var height : Double = 0.0 } let p : Person = Person() // 在赋值时,监听该属性的改变 // 在OC中是通过重写set方法 // 在swift中,可以给属性添加监听器 p.name = "why" //p.name = "yz"
import UIKit
class Student: NSObject {
// 定义属性
// 定义存储属性
var age : Int = 0
var name : String?
var mathScore : Double = 0.0
var chineseScore : Double = 0.0
// 定义计算属性: 通过别的方式计算到结果的属性,称之为计算属性
var averageScore : Double {
return (mathScore + chineseScore) * 0.5
}
// 定义类属性: 类属性是和整个类相关的属性.而且是通过类名进行访问
static var courseCount : Int = 0
/*
// 定义方法,可以返回平均成绩
func getAverageScore() -> Double {
// 在swift开发中,如果使用当前对象的某一个属性,或者调用当前对象的某一个方法时,可以直接使用,不需要加self
return (mathScore + chineseScore) * 0.5
}
*/
}
// 给类属性进行赋值
Student.courseCount = 2
// 创建对象
let stu = Student()
// 给对象的属性赋值
stu.age = 10
stu.name = "yz"
stu.mathScore = 78
stu.chineseScore = 59.9
print(stu.age)
if let name = stu.name {
print(name)
}
let averageScore = stu.averageScore