swift 2.0 类中的计算属性 & 只读属性

// ---- 接触到一个新的属性定义:计算属性

//------计算属性,要注意的一点就是,他只管计算,并不会保存数据。

//------UI当中的应用场景,比如,我们赋给一个UI控件一定的frame,然后,我们就可以使用这个控件的boundscenter,我们自己并没有计算,而是直接就可以拿到的,所以人家内部是封装好了的。

class Circle{

    var point: (Int,Int)

    var radius: Float

    

    //计算属性

    var perimeter: Float{

        get{

            return Float(2 * Float(M_PI) * radius)

        }

        set{

            print("哈哈")

        }

    }

    

    //构造函数。

    init(point: (Int, Int), radius: Float){

        self.point = point

        self.radius = radius;

    }

}



var circle = Circle(point: (5, 5), radius: 5.0)


//我们拿到内部的一个计算属性的值,并打印

print(circle.perimeter)


//这里感觉是给这个计算属性赋值的感觉,但是其实,我们只是走了这个计算属性内部的一个setter方法,虽然走了这个方法,但是perimeter并不会自动存储这个值。

//如果我们非要存储这个值,我们可以在内部定义一个属性var temp: Float?,然后接收这个值。在setter方法内部写一个 temp = newValue .记住计算属性中用到的newValue 只能在他的setter方法中写,你想,也只有setter方法才会传一个新值进去。

circle.perimeter  = 38

//这里再次打印,验证一下,还是内部计算得出的那个结果。

print(circle.perimeter)


// 另外计算属性,需要注意的一点是,如果在计算属性的内部,我们只写了get方法,那么这个计算属性又成为了只读属性,也就是只能访问。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值