В каких случаях требуются public, protected, private -методы? Здравствуйте. Недавно прочитал, что создавать класс и делать его свойства и методы сразу public - это плохая практика. Ок. А зачем вообще надо скрывать методы и свойства, в том числе даже от наследующихся классов? Я знаю что это инкапсуляция, но в чем тут смысл?
Разный уровень доступа необходим для защиты данных. К примеру, есть класс Кот с параметрами вес и имя (это поля класса). Если оставлять public, то в любой момент можно будет задать невозможные значения (вес: -1000 кг, имя: "" ). С методами работает аналогично, проще всего понять через интерфейс. Допустим, есть метод, который считывает, конвертирует и возвращает какие-то данные. Повышаем читаемость кода и бьем на 3 отдельных метода, но пользователю необходим доступ только к конечному результату, значит, доступ к промежуточным этапам можно ограничить при помощи private. Так выделенные методы смогут спокойно выполнять свою работу внутри класса и не вводить в заблуждение пользователя, которому логика каждого из них по отдельности не нужна.
Разный уровень доступа необходим для защиты данных. К примеру, есть класс Кот с параметрами вес и имя (это поля класса). Если оставлять public, то в любой момент можно будет задать невозможные значения (вес: -1000 кг, имя: "" ). С методами работает аналогично, проще всего понять через интерфейс. Допустим, есть метод, который считывает, конвертирует и возвращает какие-то данные. Повышаем читаемость кода и бьем на 3 отдельных метода, но пользователю необходим доступ только к конечному результату, значит, доступ к промежуточным этапам можно ограничить при помощи private. Так выделенные методы смогут спокойно выполнять свою работу внутри класса и не вводить в заблуждение пользователя, которому логика каждого из них по отдельности не нужна.