swift属性

作者: 巧克力的qiao | 来源:发表于2015-12-21 11:08 被阅读137次

swift有三种属性:1、存储属性 2、计算属性 3、类型属性


  • 存储属性

    //1、存储属性
    class Person{
    //常量不可改值,变量可以,存储属性初始化的时候必须给初始值
    var name:String = "张三"
    var height:Double = 1.75
    let life = 1
    
    }
    
    var person1 = Person()
    person1.name = "王二"
    person1.height = 1.81
    println("这个人的姓名是\(person1.name)")
    println(person1.height)
    println(person1.life)
    
  • 计算属性
    //2、计算属性
    class Square{
    var width:Double = 0
    var girth:Double{
    get{
    return width*4
    }

      //1-1、newValue是隐藏属性
      //        set{
    //            girth = newValue / 4
    //        }
      //1-2、也可自己定义赋值
      set(newGirth){
          
         width = newGirth / 4
        }
      }
    }
    var s = Square()
    s.width = 10
    println("这个矩形的周长是\(s.girth)")
    
    var q = Square()
    q.girth = 80
    println("这个矩形的宽为\(q.width)")
    
  • 类型属性

      //3、类型属性
      class Circle{
      //如果不写set方法,只写get方法的话,那么该属性只有get方法
      class var PI: Double {
          return 3.14
      }
    }
    
    var circle1 = Circle.PI * 6
    println("这个圆的周长是\(circle1)")
    
  • 补充

    //延时加载(即何时用到何时加载)可以避免资源的浪费,当一些属性内容中含有太多信息的时候考虑用
    //延时加载不能用于计算属性,也不能用于常量属性
    class Animal{
    
    var name:String = "dog"
    
     lazy var status:String = "这是一个延时加载的属性"
    let life:Double = 1
    class var age:Double{
      get{
          return 20
      }
      set{
          age = newValue * 2
        }
      }
    }
    var animal1 = Animal()
    

//⚠注意,以下写法会发生死循环

class Triangle{
    var area:Double {
        get{
            println("get方法被调用")
            return area
        }
        set{
            println("set方法被调用")
            area = newValue
    }
  }
}

//在一个类对象被创建出来的时候会自动调用init()方法

class Test {

init(){
    println("Test类创建被调了")
  }
}

var test = Test()

相关文章

  • Swift笔记(一)属性、析构、调用OC单例

    目录 swift属性存储属性懒加载属性计算属性属性监听类型属性 swift析构函数 swift调用OC单例类方法 ...

  • Swift 属性

    Swift 属性 在Swift中属性主要分为存储属性、计算属性、延迟存储属性、类型属性这四种,并且Swift还提供...

  • Swift进阶(三)--- 属性

    Swift的属性 在swift中,属性主要分为以下几种: 存储属性 计算属性 延迟存储属性 类型属性 一:存储属性...

  • 浅谈 Swift 中的属性(Property)

    Properties in Swift 前言 Swift 中的属性分为存储属性与计算属性,存储属性即为我们平时常用...

  • Swift:基础(二十)属性

    Swift 属性 Swift 属性将值跟特定的类、结构或枚举关联。 属性可分为存储属性和计算属性: 存储属性和计算...

  • SwiftProperty Swift3.0 属性

    Swift Peoperty Swift中有下列几种属性存储属性(Stored properties):存储实例的...

  • OC的@property与Swift的存储属性/计算属性类比

    Swift中的计算属性/存储属性与OC中的@property   Swift中引入了存储属性、计算属性的概念,存储...

  • Swift 学习笔记(三)

    Swift属性 Swift属性将值跟特定的类,结构体,枚举关联。分为存储属性和计算属性,通常用于特定类型的实例。属...

  • Swift学习-进阶02

    swift对象本质,一个swift的对象默认占用16字节大小,在内存中的结构: swift类结构: 属性 存储属性...

  • Swift5.x- 方法(中文文档)

    引言 继续学习Swift文档,从上一章节:属性,我们学习了Swift属性相关的内容,如存储属性和计算属性set和g...

网友评论

    本文标题:swift属性

    本文链接:https://www.haomeiwen.com/subject/dpemhttx.html