1. Список слов
В языке Java, как и в любом языке программирования, есть слова, которые имеют особый смысл. Например, return
или if
или while
. Такие слова называются ключевыми (keywords) и считаются зарезервированными языком Java.
Вы не можете использовать эти слова в качестве имени переменной, имени метода или класса. Компилятор всегда будет интерпретировать их строго определенным образом. Всего в Java таких слов 54
.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Некоторые из них вы уже знаете, а об остальных мы сейчас поговорим.
2. Примитивные типы
Как вы уже, скорее всего, запомнили, в Java есть 8 примитивных типов, и каждому из них соответствует свое ключевое слово:
byte
short
int
long
char
float
double
boolean
void
Если вы достаточно любознательны, скорее всего, уже пробовали назвать переменную именем int. И конечно же, это у вас не получилось. Именно по причине того, что все имена примитивных типов являются зарезервированными словами.
Также в эту категорию можно отнести тип void
.
3. Циклы и ветвления
Циклы и ветвления тоже дают нам немаленький список ключевых слов:
if
else
switch
case
default
while
do
for
break
continue
Всего 10 слов достаточно, чтобы в языке появились циклы нескольких видов, ветвления, операторы управления прерыванием цикла (break
и continue
) и множественные ветвления (switch
). Со всеми этими ключевыми словами вы уже знакомы.
4. Исключения
Исключения дают нам 5 ключевых слов:
try
catch
finally
throw
throws
Это блок try-catch-finally
. Оператор для выбрасывания исключений — throw
, и ключевое слово throws
для поддержки механизма checked
-исключений.
Хорошая новость: вы уже знакомы со всеми ключевыми словами в исключениях, поэтому большую часть работы с исключениями вы уже знаете.
5. Области видимости
Всего три ключевых слова, но вы уже с ними знакомы
private
protected
public
public
разрешает доступ к методу/переменной/классу из любого места программы.
private
запрещает доступ к методу/переменной/классу из любого места программы. Доступ разрешен только внутри того же класса, что и метод, помеченный модификатором private
.
protected
работает так же, как и private
, но еще разрешает обращаться к методу/переменной/классу из классов-наследников. Преимущества этого модификатора станут вам более понятны, когда вы хорошо разберетесь с ООП и наследованием.
6. Работа с классами
В эту категорию входит 11 ключевых слов:
class
interface
enum
import
package
extends
implements
static
final
abstract
default
Их можно разделить на 4 группы.
Первая группа — создание классов: class
, interface
и enum
. С объявлением class’а и enum’а вы уже познакомились. Ключевое слово interface
используется для объявления еще одной «разновидности классов» – интерфейсов.
Вторая группа — это уже известные вам ключевые слова package и import. Package используется для того, чтобы описать пакет класса внутри файла класса. А import
— чтобы в нашем классе мы могли использовать короткие имена чужих классов.
Ключевые слова extends
и implements
используются для описания наследования. Их вы рассмотрите в самом начале квеста Java Core.
И наконец, последняя группа — это модификаторы static
, final
, default
и abstract
. Про static
и final
вы уже немного знаете, а ключевое слово abstract
используется для того, чтобы сделать класс или метод абстрактным. Детальнее — при изучении наследования в квесте Java Core.
7. Работа с объектами и переменными
Еще 6 ключевых слов используются для работы с объектами, методами и переменными.
new
instanceof
this
super
return
var
(начиная с Java 10)
Оператор new
используется, чтобы создавать новые объекты — это вы уже знаете.
Оператор instanceof
используется, чтобы проверить, что определенная переменная содержит ссылку на объект определенного типа. С ним вы уже тоже знакомы.
Ключевое слово this
используется, чтобы решать проблемы с затенением переменных и методов класса. Вы это тоже изучали.
Ключевое слово super
— это аналог this
, только при обращении к методам и переменным класса-родителя. Класс родитель еще называют суперклассом.
Оператор return
используется, чтобы вернуть значение функции, и попутно эту самую функцию завершить.
И наконец, var
— это объявление переменной с автовыведением типа. Вы тоже с этим уже знакомы.
8. Многопоточность
Многопоточность на уровне синтаксиса языка Java представлена всего двумя словами.
synchronized
volatile
Мы их даже разбирать не будем. Вот доберетесь до квеста Java Multithreading — тогда и начнем.
9. Разное
Так же есть еще 4 уникальных ключевых слова:
native
transient
assert
strictfp
native
— это модификатор, который пишется перед объявлением метода. Он означает, что код метода написан не на Java, а на С++ и встроен в Java-машину (ну или подключаемую DLL-библиотеку). Сама Java-машина, как вы уже, наверное, догадываетесь, тоже написана на C++. Как и многие методы стандартных библиотек.
transient
— это модификатор, который пишется перед переменными класса (полями класса). Он просит Java-машину пропустить (игнорировать) переменную при сохранении объекта класса — сериализации. Больше о сериализации вы узнаете в квесте Java Collections.
assert
— тоже пришел в наследство от C++. С его помощью в код можно добавить дополнительные проверки (на то, что переменная не равна null, например). Штука в том, что он включается или выключается на этапе компиляции.
Можно собрать проект для внутреннего тестирования, где эти проверки будут осуществляться (включены). А можно их и выключить при компиляции: когда компилируете версию программы, которая будет поставляться пользователям.
Ну а про модификатор strictfp
и дополнительную точность процессоров Intel мы даже целую историю рассказывали.
10. Зарезервированы, но не используются
Еще есть два ключевых слова, которые зарезервированы, но не используются.
const
goto
Это тоже наследие языка C++, где они есть и используются.
11. Не ключевые слова
Константы true
, false
и null
формально не относятся к ключевым словам. Однако, обладают всеми их особенностями. Вы не можете назвать метод true
или переменную false
. Компилятор такой код не поймет и компилировать его не будет.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ