如果该方法是公开的,则每个人都可以访问它。像你一样访问控制的技巧是通过接口公开一组公共操作,向实现该接口的私有类添加辅助操作,并使用户程序访问接口而不是类。
下面是一个例子:
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)' – 2012-07-18 20:08:50