Модификатор доступа private
используется для того, чтобы мы могли использовать соответствующий член только внутри класса. Но используя внутренние классы, мы можем определить метод для доступа к private
членам внешнего класса. Вот код для этого:
import java.util.*;
import java.lang.*;
import java.io.*;
class Outer {
private int x = 1;
Inner getInner() {
Inner inner = new Inner();
return inner;
}
class Inner {
int getX() {
return x;
}
}
}
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
Outer outer = new Outer();
Outer.Inner inner = outer.getInner();
System.out.println("Private x: "+inner.getX());
}
}
Разве это не противоречит концепции Инкапсуляция ?