Swift 中的类型属性

类型属性:

  • 使用关键字 static 来定义 结构体、枚举、类 都可以定义类型属性 (在为类定义类型属性时 可以使用关键字 class 来代替
    static 关键字 )

结构体类型属性的语法格式

 struct 结构体名 {

    static var 存储属性 = "xxxx"
    static var 计算属性名 : 属性数据类型 {
        return 计算后的属性值
    }
 }

代码示例

struct Stu{

    var livingCost = 0.0

    static var tuition : Double = 12000

    static var tuitionProp : Double {
       return tuition - 1000
    }

    var totalCost : Double  {
        return Stu.tuition + livingCost
    }

}
//访问静态属性
Stu.tuition
//访问实例属性
var stu1 = Stu()
stu1.livingCost = 2000
stu1.totalCost

枚举类型属性的语法格式

 enum 枚举名 {
    static var 存储属性 = "XXX"
    static var 计算属性名 : 属性数据类型 {
      return 计算后的属性值
    }
 }

代码示例

enum Student {

    case iOS

    case Android

    case Java

    case html5

    static var tuition : Double = 12000

    static var tuitionProp : Double {
       return tuition + 111
    }

    var instanceProp : Double {

        switch self {

        case .iOS:
            Student.tuition = 11668
        case .Android:
            Student.tuition = 12668
        case .Java:
            Student.tuition = 13668
        case .html5:
            Student.tuition = 14668
        }
        return Student.tuition - 1000
    }
}
//访问静态属性
Student.tuition
Student.tuitionProp
//访问实例属性
let stu = Student.iOS
stu.instanceProp

类 类型属性的语法格式

class 类名 {
    static var 存储属性 = "XXX"
    static var 计算属性 : 属性数据类型 {
       return 技术后的属性值
    }

    class var 子类对父类实现支持重写 : 属性数据类型 {
         return 重写后属性值
    }
 }

代码示例

class person {
    var name = "小明"
}

class p1 : person {

    static var height = 180

    static var weight : String {

        return "80Kg"
    }

    class var age: Int {
        return 18
    }
    class var name: String {
       return "王二小"
    }

    var gender : String?

}
//通过静态属性访问
p1.height
p1.weight
p1.age
p1.name
//通过实例属性访问
let p = p1()
p.gender = "男"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值