Nếu phương thức công khai, mọi người đều có thể truy cập. Bí quyết để kiểm soát quyền truy cập giống như của bạn là phơi bày một tập hợp các hoạt động công khai thông qua giao diện, thêm các hoạt động phụ vào một lớp riêng tư triển khai giao diện và làm cho chương trình người dùng của bạn chuyển sang giao diện chứ không phải lớp.
Dưới đây là một ví dụ:
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); }
}
kịch bản sử dụng:
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));
Bạn có thể đặt 'List' thành lớp bên trong trong' A', vì vậy không có lớp nào khác có quyền truy cập vào nó.Cách khác có thể đặt 'Chèn danh sách # (A a)' –