public class ProtectedClass {
private String name;
public static void changeName(ProtectedClass pc, String newName) {
pc.name = newName;
}
public ProtectedClass(String s) { name = s; }
public String toString() { return name; }
public static void main(String[] args) {
ProtectedClass
pc1 = new ProtectedClass("object1"),
pc2 = new ProtectedClass("object2");
pc2.changeName(pc1, "new string"); // expect ERROR/EXCEPTION
System.out.println(pc1);
}
} ///:~
Учитывая приведенный выше исходный код Java, можно легко сделать вывод, что язык программирования Java может обеспечивать только контроль / защиту доступа на уровне класса. Существуют ли какие-либо языки программирования, обеспечивающие контроль / защиту доступа на уровне объекта?
спасибо.
P.S: Эта проблема вытекает из этого вопроса Java: Почему метод базового класса может вызывать несуществующий метод? Я хочу выразить признательность TofuBeer .