Scala中类private

类中属性没有修饰符,默认public

class  Counter{
  var value=0
  def increment(){value+=1;println("hello world")}
  def isLess(other:Counter)=value<other.value
  //def current=value
}
val n=new Counter
val n1=new Counter
n1.increment()
println(n1.value)
println(n.isLess(n1))

如果是
private val value=0;
那么n1.value就会报错

Scala对每个字端都提供geter与setter方法。

class Person{
      var age=0 
}

这里写图片描述
编译器创建了age和age_ eq(= eq,是因为JVM不允许方法名中出现=)
在Scala中,getter与setter方法并不是被命名为getXXX,和setXXX。

任何时候都可以自己重新定义getter和setter方法。

class Person{
    private var privateAge=0
    def age=privateAge
  def age_=(newValue:Int): Unit ={
    if(newValue>privateAge) privateAge=newValue
  }
}

scala为每个字段生成getter与setter方法。

  • 如果字段是私有的,那么setter与getter也是私有的
  • 如果字段是val,那么只有getter方法被生成
  • 如果不需要任何getter与setter,那么将字段声明为private

这里写图片描述

只带getter的属性

如果需要只读属性,那么声明为val,Scala生成一个私有的final字段和一个getter方法,但是没有setter。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值