このメソッドがpublicであれば、誰でもアクセスできます。あなたのようなコントロールにアクセスするためのトリックは、インターフェイスを介してパブリック操作のセットを公開し、インターフェイスを実装するプライベートクラスに補助操作を追加し、クラスではなくインターフェイスにユーザープログラムを作成することです。
ここ
は一例です。
public interface MyList {
Object elementAt(int i);
}
public class A {
private static class MyListImpl implements MyList {
public Object elementAt(int i) {
...
}
public void insert(Object element) {
...
}
}
private final MyListImpl list = new MyListImpl();
public MyList getList() { return list; }
public void insert(Object o) { list.insert(o); }
}
使用シナリオ:
A a = new A();
a.insert(123);
a.insert("quick brown fox");
MyList lst = a.getList();
System.out.println(lst.elementAt(0));
System.out.println(lst.elementAt(1));
のインスタンスであるかどうかを確認でしょう'List'を' A'の内部クラスにします。他のクラスはそれにアクセスできません。他の方法で 'List#insert(A a)'を設定することができます –