Scala でのオブジェクト プライベート変数の実装を理解しようとしています。Scala はこのクラスをコンパイルします
class Counter{
private[this] var age = 0
}
次の Java バイト コードに変換します。
public class Counter implements scala.ScalaObject {
private int age;
public Counter();
}
それでも、JVM はオブジェクト プライベート フィールドをサポートしていないため、クラスの他のインスタンスからアクセスできる古き良きプライベート フィールドがあります。したがって、プライベート フィールドを非表示にするという点で、前のクラスと次のクラスの違いは明確ではありません。
class Counter2{
private var age = 0
}
public class Counter2 implements scala.ScalaObject {
private int age;
private int age();
private void age_$eq(int);
public Counter2();
}