스칼라에서 개체 - 개인 변수의 구현을 이해하려고합니다. 스칼라는 다음과 같은 자바 바이트 코드로이 클래스개체 - 개인 변수 구현
class Counter{
private[this] var age = 0
}
을 컴파일 : JVM은 객체 개인 필드를 지원하지 않기 때문에,
public class Counter implements scala.ScalaObject {
private int age;
public Counter();
}
하지만 여전히, 우리가 할 수있는 좋은 된 개인 필드가 클래스의 다른 인스턴스에서 액세스 할 수 있습니다. 그래서 제게는 사적인 영역을 숨기는 관점에서 이전 클래스와 다음의 차이점이 명확하지 않습니다.
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();
}
[개인 \ [이 \] 대 개인적인] 가능한 복제본 (http://stackoverflow.com/questions/9698677/privatethis-vs-private) – zellus
무엇이 당신의 질문은 무엇입니까? 명백한 차이점은 다른 인스턴스가 객체 - 전용 필드에 액세스하는 것이 컴파일 타임 오류라는 것입니다. 그러나 나는 당신이 그것을 알고 있다고 가정하기 때문에, 여기에 무엇이 묻히고 있는지 확신 할 수 없습니다. –
JVM이 개체 전용 필드 – damluar