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

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

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

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

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

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

Метод equals() Java

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

Для некоторых классов большего и не требуется. Например, вряд ли кому-то потребуется анализировать два объекта PrintStream и выяснить, отличаются ли они друг от друга. Однако в ряде случаев эквивалентными должны считаться объекты одного типа, имеющие одинаковые состояния. Читать

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

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

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

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

Чтобы разблокировать или заблокировать пункт меню, используется метод setEnabled(): Читать

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

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

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

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

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

Если пользователь щелкнул на кнопке, значит, он нажал кнопку мыши, возможно, переместил курсор по экрану и отпустил кнопку мыши(причем курсор мыши должен находиться в пределах кнопки). Читать

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

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

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

Простой калькулятор на Java

Простой калькулятор на JavaПредставляю вам готовый калькулятор на Java. Просто скопируйте нижний код и вставьте его в ваш IDE Eclipse или NetBeans. Читать