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

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

Если суперкласс явно не указан, им считается класс Object. Поскольку в…

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

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

Метод equals() Java

Метод equals() класса Object проверяет, эквивалентны ли два объекта. Поскольку метод equals() реализован в классе Object, он определяет лишь, ссылаются ли переменные на один и тот же объект. В качестве проверки по умолчанию эти действия вполне оправданы: всякий объект эквивалентен…

Изолируйте блоки try/catch

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

Блокирование и разблокирование пунктов меню

Бывают случаи, когда некоторые пункты меню должны выбираться лишь в определенных ситуациях. Например, если документ открыт лишь для чтения, то пункт меню Save не имеет смысла. Разумеется, этот пункт можно удалить с помощью JMenu.remove(), но пользователя может удивить постоянно изменяющееся…

Выпадающие списки Java

Если вариантов для выбора слишком много, переключатели не подойдут, поскольку для них не хватит места на экране. В этом случае следует использовать выпадающие списки(combo box). Если пользователь щелкнет на этом компоненте, откроется список из нескольких пунктов и пользователь сможет выбрать…

Семантические и низкоуровневые события в библиотеке AWT

В AWT события разделены на низкоуровневые(low-level) и семантические(semantic). Семантические события описывают действия пользователя, например, щелчок на кнопочке; следовательно, событие ActionEvent является семантическим. Низкоуровневые события обеспечивают возможность таких действий. Если пользователь щелкнул на кнопке, значит, он нажал кнопку мыши, возможно, переместил…

Статические вложенные классы

Может случиться так, что вам нужно будет использовать вложенный класс, просто для того чтобы скрыть его внутри другого класса, а ссылка на объект внешнего класса окажется ненужной. Подавить генерацию этой ссылки можно, объявив  вложенный класс статическим(static). Предположим нам нужно найти…