Зарезервированные слова — это слова, которые нельзя использовать в качестве идентификатора, например, переменные, функции. Зарезервированные в основном используются для синтаксических определений. Ключевые слова тесно связаны между собой и часто взаимозаменяемо используются для обозначения зарезервированных слов. Ключевое слово — это слово, имеющее особое значение в определенном контексте. В большинстве современных языков ключевые слова являются подмножеством зарезервированных слов, и это дает преимущества при синтаксическом анализе, поскольку ключевые слова нельзя спутать с идентификаторами.
В Java все ключевые слова являются зарезервированными словами, но некоторые зарезервированные слова не являются ключевыми словами — они «зарезервированы для использования в будущем». Всего имеется 51 ключевое слово, из которых 49 используются, а 2 зарезервированы для будущего использования.
В этой статье мы обсудим некоторые редко используемые ключевые слова в Java. Полный список ключевых слов можно найти здесь. Ключевые слова Java можно условно разделить на следующие категории: Примитивные типы и void, Модификаторы, Объявления, Поток управления, Разное. Обратите внимание, что в этой статье мы также рассмотрим зарезервированные ключевые слова для Java 8. Давайте рассмотрим некоторые из этих ключевых слов:
abstract:ключевое слово abstract используется для реализации абстракции в Java. Абстрактный класс – это объявленный abstract
класс, который может включать или не включать абстрактные методы. Абстрактные классы не могут быть созданы, но могут быть подклассами.
Абстрактный метод – это метод, объявленный без реализации (без фигурных скобок и с точкой с запятой).
// abstract class example public abstract class Person { // declare fields // declare nonabstract methods abstract void details(); // abstract method example }
Несколько замечаний:
- Когда абстрактный класс является подклассом, подкласс должен предоставлять реализации для всех абстрактных методов в своем родительском классе. Однако, если это не так, то подкласс также должен быть объявлен
abstract
. - В случае interface все объявленные методы являются неявно абстрактными, если они не объявлены по умолчанию или статическими.
- Абстрактный класс может иметь
static
полей иstatic
методов. - Абстрактный класс может реализовать интерфейс без реализации всех методов интерфейса.
- Примером абстрактного класса в JDK является
AbstractMap
, который является частью Collections Framework. Подклассы для этого класса:HashMap, TreeMap and ConcurrentHashMap
.
instanceof:instanceof — это бинарный оператор, используемый для проверки принадлежности объекта к заданному типу. Результатом операции является либо true, либо false. Перед приведением неизвестного объекта всегда следует использовать проверку instanceof. Синтаксис: (object) instanceof (type)
. Оператор instanceof работает по принципу отношения is-a. is-a relationship
работает либо для наследования классов, либо для реализации интерфейса.
Использование:
public interface Shape {} public class Round {} public class Circle extends Round implements Shape {} // Instance of class CircleCircle circle = new
Circle(); Assert.assertTrue(circle instanceof
Circle); // True Assert.assertTrue(circle instanceof
Round); // True Assert.assertTrue(circle instanceof
Shape); // True
Несколько замечаний:
- Поскольку каждый класс неявно наследуется от класса Object. Оператор
instanceof
с типомObject
всегда будет оценивать true. - При использовании
instanceof
проверка null не требуется в явном виде.object
со значениями null всегда будет возвращать false. - При переопределении метода
equals
в Java рекомендуется не использовать проверкуinstanceof
, если только класс не является неизменяемым, т. е. не может иметь подклассов, поскольку проверкаinstanceof
возвращает true даже для дочернего класса. Вместоinstanceof
мы можем использоватьgetClass()
метод для идентификации типа.
module: ключевое словоmodule было введено в Java из Java 9. Модуль Java — это механизм для упаковки вашего приложения Java и пакетов Java в модули Java. Он состоит из одного или нескольких пакетов Java, которые связаны друг с другом. Модуль может иметь полное приложение Java или API платформы Java или сторонний API.
Основные преимущества модулей заключаются в том, что он позволяет разделить API на отдельные модули, что уменьшает площадь распределенного приложения. Это также помогает в инкапсуляции внутренних пакетов, а также позволяет обнаруживать отсутствующие модули при запуске. Подробнее о модулях читайте в этой статье Якоба Дженкова.
Я надеюсь, что эта статья была информативной. В следующей части статьи мы рассмотрим другие ключевые слова: родной, статический, strictfp, синхронизированный, переходный, _ (подчеркивание), изменчивый.
Использованная литература: