2017-03-18 11 views

答えて

0

、それはインスタンス変数になります。いずれかを指定しないと、それはされません。したがって、valまたはvarのいずれかに相当しません。

クラスパラメータを再割り当てできるかどうかに関しては、クラスパラメータは通常のパラメータと同じように動作し、再割り当てできません。 @ sepp2kによって解答に追加

0

:あなたはcase classを使用する場合は、デフォルトではval次のとおりです。この場合bar

case class Foo(bar: Bat) 

public、アクセシビリティのあるvalです。

2

受け入れられた回答は原則的に正しいです。しかし、実際には、渡されたパラメータがdefの実装で使用されると、private val(それに対してprivate defゲッターが生成されない点を除いて)と宣言されたように、インスタンスフィールドになります。例えば

class Foo(bar: Bar) { 
    def foo: Bar = bar 
} 

public class Foo { 
    private final Bar bar; 
    public Bar foo(); 
    public Foo(Bar); 
} 

javapを使用して)次のJava翻訳に逆コンパイルすることができますが、この詳細についてはまたmy answer on this thread参照してください。

関連する問題