Я видел этот де-факто стандарт во многих местах на многих языках, но я его никогда не понимал - зачем ставить ваши частные поля и методы в начало объявления класса? Метафорически кажется, что личные вещи должны располагаться внизу (скрытые), и все, что должно быть на публике должно быть наверху, так что, когда вы читаете класс сверху вниз, вы сначала видите публичный интерфейс, а затем внутреннюю работу.
Каковы причины этого?
EDIT: просто для того, чтобы уточнить, я не имею в виду практику объявления всех членов в верхней части класса, но о том, чтобы помещать частные члены/методы в начало объявления класса, прежде чем что-либо публичное.