使用类参数指定字段值

时间:2016-08-23 08:08:00

标签: java scala class

我是scala的新手,并希望使用类参数将值分配给相同的字段。在Java中,我们在构造函数中执行类似的操作:

public class Test{

    private final int value;

    public Test(int value){
        this.value = value;
    }
}

现在,我试图在Scala中做类似的事情:

class Test(value: Int){
   val value = ..WHAT..value //Is there a way to assign a parameter value to a field with the same name?
}

object Test{
   def testMethod = //access value and do something with it.
}

我们可以做一些类似于我们在Java中可以做的事情吗?

2 个答案:

答案 0 :(得分:1)

Scala为创建此类成员提供了更短的语法 - 只需在类参数列表中的参数名称前添加关键字val即可。您还可以添加修饰符(例如private):

scala> :paste
// Entering paste mode (ctrl-D to finish)

class Test(private val value: Int)

object Test {
  def testMethod(t: Test) = t.value
}

// Exiting paste mode, now interpreting.

defined class Test
defined module Test

scala> Test.testMethod(new Test(5))
res1: Int = 5

答案 1 :(得分:1)

如果您不喜欢公开私人会员,您可以这样做:

class A {
  private var _quote = ""
  def quote = _quote
  def quote_=(newQuote: String) = _quote = newQuote
}

您可以通过拨打quote来获取getter和setter。