scala – 从辅助构造函数初始化val
发布时间:2020-12-16 18:42:46 所属栏目:安全 来源:网络整理
导读:我有以下课程代表一些金额: class Money(initDollars: Int,initCents: Int){ require (initDollars = 0 initCents = 0) private def this(positive: Boolean,initDollars: Int,initCents: Int) = { this(initDollars,initCents) //this.positive = positive
我有以下课程代表一些金额:
class Money(initDollars: Int,initCents: Int){ require (initDollars >= 0 && initCents >= 0) private def this(positive: Boolean,initDollars: Int,initCents: Int) = { this(initDollars,initCents) //this.positive = positive } val positive: Boolean = true val dollars = initDollars + initCents/100 val cents = initCents % 100 private val totalAmount = dollars * 100 + cents def unary_- = new Money(!positive,dollars,cents) } object Money{ def apply(initDollars: Int,initCents: Int) = new Money(initDollars,initCents) } 金额也可能是负数,我想像这样创建它: val am = -Money(1,20) 所以我想从辅助构造函数初始化val positive,但我不能这样做,因为它重新分配给val.我也无法在辅助构造函数的参数列表中添加val.有人可以帮忙吗? 解决方法
反过来做.
class Money private (pos: Boolean,initCents: Int) { require (initDollars >= 0 && initCents >= 0) def this(initDollars: Int,initCents: Int) = { this(true,initDollars,initCents) } val positive: Boolean = pos val dollars = initDollars + initCents/100 val cents = initCents % 100 private val totalAmount = dollars * 100 + cents def unary_- = new Money(!positive,cents) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |