Почему открытый API Java имеет закрытый метод? - PullRequest
2 голосов
/ 05 января 2012

Я смотрел на java.security.BasicPermission API на днях. Почему у него есть частный метод?

private void readObject (ObjectInputStream s) readObject вызывается для восстановления состояния BasicPermission из потока.

Извините, я не поняла, о чем спросила. Класс это просто пример. Их много в библиотеке Java. Все они читаются с помощью метода Object. Когда они разрабатывали этот API, зачем им добавлять закрытый метод, который приложение не может использовать?

Ответы [ 3 ]

2 голосов
/ 05 января 2012

readObject используется платформой сериализации Java при десериализации для поддержки пользовательских операций. В отличие от большинства частных методов, обычно не вызывается внутри самого класса - вместо этого он вызывается framework / JVM, что, очевидно, несколько нарушает обычные ожидания.

См. документы для Serializable для более подробной информации.

1 голос
/ 05 января 2012

Этот метод, вероятно, вызывается внутренне одним из других общедоступных методов и не должен беспокоить пользователя API.

0 голосов
/ 05 января 2012

Закрытый метод - это метод, к которому не может получить доступ API, но который используется для внутренних действий.

Например, возьмем пример из реальной жизни, например, Микроволновая печь. Он будет иметь внешние пользовательские входы, такие как bake (), heat () и т. Д., Но закрытую внутреннюю функцию, например cookFor (время минуты, температура t).

Так что теперь реализация СВЧ действительно проста,

public void bake() {
  cookFor(45, 300);
}

public void heat() {
  cookFor(5, 100);
}

и т.д.. Причина, по которой у нас есть функции, заключается в написании хороших процедурных программ, а частный / публичный дескриптор используется для инкапсуляции класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...