当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 云计算Scala中类private解析

云计算Scala中类private解析

2017年12月18日  | 移动技术网IT编程  | 我要评论
类中属性没有修饰符,默认public class Counter{ var value=0 def increment(){value+=1;println(&

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

class  Counter{
  var value=0
  def increment(){value+=1;println("hello world")}
  def isLess(other:Counter)=value

如果是 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。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网