昔初めてJavaを勉強していたときに、疑問に思ったのが以下のコード。 public class Main { public static void main(String[] args) throws Exception { Cell c1 = new Cell(); Cell c2 = new Cell(); c1.getValue(c2); } } class Cell { private String value = "value"; public String getValue(Cell cell) { return cell.value; } } 何が言いたいかっていうとprivateに指定したはずのvalueが外部から見えているじゃん! ただそれだけです。 Scalaだとprivate[this]を指定することで、たとえ同じclassでも外部から見えなくできる。 scala>