码迷,mamicode.com
首页 > 编程语言 > 详细

Swift 学习一

时间:2016-06-19 18:32:53      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

1、类的定义

  class 类名 {

    //属性和方法

  }

2、属性: 类似于成员变量,分为三种:

  (1) 存储属性:存储在对象中的一个变量或常量

  class Person {               // 这种定义属性必须写初始值,因为系统不会自动初始化初始值

    var age:Int = 1        // var 关键字修饰变量

    let life = 1               // let 修饰常量,不能修改

  }

  var person = Person()

  person.age = 20           // 直接通过点运算符读写

  println("person的生命是\(person.life), person的年龄是\(person.age)")

 

  (2) 延迟属性:第一次使用时才进行初始化的属性 (相当于懒加载),使用关键字 @lazy 来标识一个延时属性。

  好处:让某些资源用到时再去加载,避免不必要的资源浪费。

  注意:延迟存储属性必须是变量,不能是常量。

  class Dog {

    var name: String = "timo"

    init() {

      println("你是一条狗")

    }

  }

  class Person {

    var dog: Dog = Dog()

  }

  class LazyPerson {

    var dog: Dog = Dog()

  }

  var person = Person()       // 会直接打印  你是一条狗

  

  var lazyPerson = LazyPerson()     // 不会直接打印

  lazyPerson.dog            // 调用才会打印

 

  (3)计算属性:不是直接存储值,而是提供set和get方法

  

  class Square {

    var width: Double = 0    // 边长

    var girth: Double {      // 周长

      get {

        return width * 4

      }

      set { // 默认有一个newValue 的值

        width = newValue / 4

      }        

  }

  var square = Square()

  square.width = 10

  println(square.girth)       // 调用 girth 属性的 get,输出结果是40

  square.girth = 200

  println(square.width)     // 调用 girth 属性的 set,并且把200传递给 newValue,输出结果是 50

Swift 学习一

标签:

原文地址:http://www.cnblogs.com/10-19-92/p/5598510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!