- Внутри класса доступ к приватной переменной открыт без ограничений;
- Вложенный класс имеет полный доступ ко всем (в том числе и приватным) членам содержащего его класса;
- Доступ к приватным переменным извне может быть организован через отличные от приватных методов, которые предоставлены разработчиком класса. Например: getX() и setX().
- Через механизм рефлексии (Reflection API)
В Java объект не может напрямую получить доступ к члену класса, объявленному как private. Однако, вы можете использовать геттеры (методы, которые предоставляют доступ к private полям класса) и сеттеры (методы, которые изменяют значения private полей класса), чтобы получить доступ к private полям класса извне. Геттеры и сеттеры обычно объявляются как public методы класса.
Например, если у вас есть класс Person с приватным полем name, вы можете создать геттер и сеттер для этого поля следующим образом:
public class Person {
private String name;
public String getName() {
return this.name;
}
public void setName(String newName) {
this.name = newName;
}
}
Затем вы можете создать объект Person и использовать его геттер и сеттер для получения доступа к приватному полю name:
Person person = new Person();
person.setName("John");
String name = person.getName(); // вернет "John"
Таким образом, при использовании геттеров и сеттеров из объекта можно получить доступ к private полям класса в Java.
Github: https://github.com/DEBAGanov