private
в Java
обеспечивает инкапсуляцию уровня класса. Возможно ли инкапсулировать объект? Или это бесполезно?Инкапсулировать объекты в Java?
Например, если мы определим класс как,
public class Person {
private String ssn;
private ArrayList<Person> friends = new ArrayList<Person>();
public void addFriend (Person stranger) {
friends.add(stranger);
// but here I have access to her ssn
System.out.println(stranger.ssn);
}
}
Как бы оградить доступ к ssn
из stranger
в методе addFriend()
выше, когда требуется, чтобы объект по stranger
«s передается ей в качестве параметра?
Вы понимаете, что находитесь в классе «Личность»? У вас также есть доступ к 'stranger.ID'; 'чужой' - это« Человек ». –
@ElliottFrisch Я думаю, что он это делает, и это его вопрос.Ну, если это так: нет, нет способа скрыть поле класса для других экземпляров того же класса – Dici
@ElliottFrisch Да, как указал Дичи. –