Полиморфизм Java

Полиморфизм JavaСуществует простое правило, позволяющее определить, стоит ли конкретной ситуации применять наследование или нет. Если между объектами существует  отношение «является» («is-a»), то каждый объект подкласса является объектом суперкласса. Например, каждый менеджер является сотрудником. Следовательно, имеет смысл сделать класс Manager подклассом класса Employee. Естественно, обратное утверждение неверно — не каждый сотрудник является менеджером.

Другой способ — принцип подстановки. Этот принцип гласит, что объект подкласса можно использовать вместо любого объекта суперкласса. Читать

Метод hashCode() Java

Метод hashCode() JavaХеш-код это целое число, генерируемое на основе конкретного объекта. Хеш-код можно рассматривать как некоторый шифр: если x и y — разные объекты, то с высокой степенью вероятности должны различаться результаты вызовов x.hashCode() и y.hashCode(). В классе String для вычисления хеш-кода используется следующий алгоритм: Читать

Выберите одно слово для каждой концепции

Выберите одно слово для представления одной абстрактной концепции и придерживаетесь его. Например, существование в разных классах эквивалентных методов с именами fetch, retrieve и get неизбежно создаст путаницу. Как запомнить, какой термин использовался в той или иной библиотеке или классе, нередко приходится помнить, какой компанией, группой или программистом эта библиотека была создана. В противном случае вы потратите массу времени на просмотр заголовков и предыдущих примеров кода. Читать

Использование консольного окна Java

Использование консольного окна JavaОтлаживая аплет, вы можете просматривать сообщения об ошибках в окне: в панели конфигурации Java Plug-in установите флажок Show Java Console. Окно Java Console снабжено полосами прокрутки, так что в нем можно просматривать довольно пространные сообщения. Пользователи Windows имеют несомненное преимущества над пользователями системы DOS, в окне которой обычно появляются данные из потоков System.err и System.out.

Как сгенерировать исключение Java

Как сгенерировать исключение JavaПредположим, что с вашей программой случилось нечто ужасное. У вас есть метод readData(), считывающий данные из файла, в заголовке которого указано следующиее:

Content-length: 1024

Однако посе воода 733 символов файл окончился. Вы считаете эту ситуацию настолько ненормальной, что решаете генерировать исключение. Теперь необходимо решить, какого типа должно быть исключение. Нам подходит одна из разновидностей класса IOException. Просматривая документацию, вы обнаруживайте описание исключения EOFException: «Сигнализирует о том, что во время ввода данных неожиданно обнаружен признак конца файла EOF». Отлично. Это исключение можно создать двумя способами: Читать

Обработчик ошибок Java

Обработчик ошибок JavaПредположим, что в ходе выполнения программы, написанной на языке Java обнаруживается ошибка. Она может быть вызвана неверной информацией в файле, неправильным сетевым соединением или выходом ща пределы допустимого диапазона изменения индексов массива, а может быть попыткой использования ссылки, которая не указывает на какой-либо объект. Вполне естественно, пользователи надеются, что программа самостоятельно справится с возникшими неприятностями. Если из-за ошибки какая-либо операция не может быть завершена, то программа должна сделать одно из двух. Читать

Технология Java Web Start

Технология Java Web StartJava Web Start это технология, предназначенная для доставки приложения по интернету. Приложения Java Web Start имеет следующие характеристики.

  • Обычно они доставляются с помощью браузера. Как только приложения Java Web Start загружено, оно может быть запущено без браузера.
  • Они не «живут» в окне браузера. Приложение отображается в своем собственном окне, все браузера.
  • Они не используют реализации Java браузера. Браузер запускает внешнюю программу при получении дескриптора приложения. Для этого используется механизм, подобный тому, который применяется в Adobe Acrobat или RealAudio.
  • Приложениям, снабженным цифровой подписью, могут быть предоставлены права свободного доступа к локальной машине. Приложения, не имеющие подписи, запускаются в «песочнице»(sandbox), что запрещает потенциально опасные операции. Читать

Поля для ввода пароля Java

Поля для ввода пароля JavaПоля для ввода пароля представляют собой особый вид полей редактирования. Чтобы скрыть пароль от посторонних наблюдателей, его символы не отображаются на экране. Вместо этого каждый символ в пароле заменяется эхо-символом обычно звездочкой (*).

В библиотеке Swing предусмотрен класс JPasswordField, реализующий такое поле редактирования. Поля для ввода пароля — это еще одна демонстрация преимуществ архитектуры «Модель — Представление — Контроллер». Для хранения данных пароль использует ту же модель, что и обычное поле редактирования, но его представление изменено и заменяет все символы пароля эхо-символами.

Object: глобальный суперкласс

Object: глобальный суперклассКласс object является предком всех классов — каждый класс в языке Java расширяет класс Object. Однако явно отражать этот факт, как в приведенной ниже строке кода, не нужно:

Если суперкласс явно не указан, им считается класс Object. Поскольку в языке Java каждый класс расширяет Object, очень важно знать, какими возможностями обладает сам класс Object. Некоторые методы класса Object можно понять лишь после изучения потоков. Читать

Уничтожение объекта и метод finalize()

Уничтожение объекта и метод finalize()В некоторых объектно-ориентированных языках, в частности в C++, есть явные деструкторы, предназначенные для уничтожения объектов. Основная их задача — освобождение памяти, занятной объектами. Поскольку в языке Java реализован механизм автоматической сборки мусора, освобождать память вручную нет никакой необходимости, поэтому в языке Java деструкторы отсутствуют.

Разумеется, некоторые объекты используют кроме памяти и другие ресурсы, например файлы, или обрабатывают другие обьекты, которые в свою очередь, обращаются к системным ресурсам. В этом случае очень важно, чтобы ресурсы вовремя освобождались. Читать