Java 使用类参数指定字段值

Java 使用类参数指定字段值,java,scala,class,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 ther

我是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中类似的事情吗?

Scala提供了一种较短的语法来创建这样的成员-只需在类参数列表中的参数名称之前添加关键字
val
。您还可以添加修饰符(例如,
private
):


Scala为创建这样的成员提供了一种较短的语法—只需在类参数列表中的参数名称之前添加关键字
val
。您还可以添加修饰符(例如,
private
):


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

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

你会给你一个getter和setter,都可以通过调用
quote

访问。如果你不想公开一个私有成员,你可以这样做:

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

你会给你一个getter和setter,都可以通过调用
quote

AFAIK的可能副本来访问,它将使它成为公共成员。作为Java程序员,我们不太喜欢将类成员公开。它在Scala中常见吗?@user3663882 Scala遵循统一访问原则。看看吧,没想到我们可以申报这些东西。谢谢。好的,它会成为一个公众会员。作为Java程序员,我们不太喜欢将类成员公开。它在Scala中常见吗?@user3663882 Scala遵循统一访问原则。看看吧,没想到我们可以申报这些东西。谢谢。您还可以将带有默认值的
private var
设置为可选构造函数参数。您还可以将带有默认值的
private var
设置为可选构造函数参数。