swift属性

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()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 存储属性计算属性属性观察器类型属性 存储属性 存储常量或变量作为实例的一部分,用于类和结构体。 栗子 等下!😲 先...
    HunterDude阅读 556评论 0 4
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 4,122评论 0 6
  • swift中属性有多种功能 存储功能:存储实例的常量和变量 计算功能:通过某种方式计算出来的属性 类属性: 与整个...
    清风沐沐阅读 597评论 0 0
  •  属性:将值与特定的类、结构体或枚举关联; 存储属性:存储常量或变量作为实例的一部分; 计算属性:用于计算一个值(...
    EndEvent阅读 664评论 1 5
  • 什么是属性? 属性将值跟特定的类、结构体或枚举关联。存储属性存储常量或变量为实例的一部分,而计算属性计算(不是存储...
    GY1994阅读 390评论 0 2

友情链接更多精彩内容