много хороших ответов, но, возможно, еще один из самоучки Java программиста, как я прошел через все, что сам с большим количеством боли;)
Подумайте о классе как видимое извне , а не как то, что вы видите внутренне. Если вы посмотрите на класс со стороны, что видите?
Принимая часы в качестве примера снова, часы могут дать вам информацию о текущем времени и может быть создан, чтобы показать правильное время.
Так что, глядя на вещи снаружи, часы - это машина, которая может делать эти две вещи; общественные методы мы называем их.
Но мы, как конструкторы этих часов, знаем, что перед любой операцией мы должны переключаться с 23 на 11 на наш дисплей (это такие часы), поэтому нам нужно немного перестроить вещи для этого. Изменение с 23 до 11 прекрасно подходит для нас в обоих случаях - установка часов и отображение текущего времени - но мы делаем это «сбоку», так как пользователь не должен знать обо всех этих сложных математиках. Это частные методы!
Таким образом, наш Clock
класса может иметь два публичных метод (showTime
и setTime
), которые все, что пользователь хочет видеть и частный метод (recountTime
), который обеспечивает функциональные возможности для этих общедоступных методов и что-то, что пользователь не хочет посмотреть.
С одной стороны, вы должны иметь в виду, что частный - это то, что не будет переопределяться и получить доступ к будущим программистам, используя ваш код (как указано в ответах выше). Но private также означает вещи, сделанные сбоку, поэтому пользователь не видит его. Вот почему мы называем общественные методы публичным интерфейсом - это все, что пользователь увидит снаружи.
Для меня это полезно (я самоучкой, поэтому, возможно, это не очень популярная методология ...), чтобы записать все, что пользователи (реальные пользователи и другие классы) будут делать с моим классом (открытый интерфейс с подписями публичных методов), а затем написать подписи частных методов, которые I-the-implementer будет использовать для достижения публичных целей, которые обещали предоставить моим пользователям, а затем просто выполнить его с помощью кода.
Может быть полезно иметь в виду, что старое правило C все еще действует (как было указано в 97 Things Every Programmer Should Know): функция/метод должна быть всего несколько строк длинной, действительно!
Чтобы предотвратить программирование от публичных методов, которые прокручиваются вечно в вертикальном направлении. Вам нужны частные методы, чтобы прервать реализацию общедоступного метода в читаемые/поддерживаемые/сплоченные/многоразовые (СУШКИ) фрагменты - каждый фрагмент идеально представляет собой частный метод с раскрывающимся именем намерения. – Gishu
Спасибо за ваши комментарии .. Я получил ответ, который был у меня в голове с давних времен. Stackoverflow действительно полезен. – pointlesspolitics
Важно отметить, что в большинстве случаев вам, вероятно, не нужен метод 'private', а метод' protected'. ([Разница] (https://stackoverflow.com/questions/224966/private-and-protected-members-c)) – rinogo