Что-то эта задача перевернула мое понимание private модификаторов доступа. Почему вот эта конструкция рабочая, если мы обращаемся в private полю по сути другого объекта: public static class Soldier implements Comparable<Soldier>{ private int height; public int compareTo(Soldier o) { return o.height - this.height; } } ? Или же все прайвет поля видны другим инстансам того же класса?