以下のクラスを検討してください
public class Player {
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
同じパッケージに別のクラスがあると仮定します
public class Sample {
Player p1 = new Player();
Player p2 = new Player();
Player p3 = new Player();
Player p4 = new Player();
//p1.
}
このクラスでは、メソッドp1.setId(int)にアクセスすることは、別のメソッドで呼び出されない限り不可能です。
public class Sample {
Player p1 = new Player();
Player p2 = new Player();
Player p3 = new Player();
Player p4 = new Player();
void example () {
int x;
p1.setId(x);
}
}
例の中でp1.setId()が可能です。Javaが別のメソッド内でのみメソッドへのアクセスを有効にしていることを理解しています。したがって、より安全です。しかし、なぜそのような制限があるのか、そしてこの制限でどのような概念データの抽象化またはカプセル化が示されるのかを明確にしたいと思います。前もって感謝します 。