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. Робота з класами
У цю категорію входять 10 ключових слів:
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-машину, як ви вже, напевно, здогадуєтеся, теж написано мовою С++, як і багато методів стандартних бібліотек.
transient
— це модифікатор, який пишуть перед змінними класу (полями класу). Він просить Java-машину пропустити (ігнорувати) змінну під час збереження об'єкта класу, тобто під час серіалізації. Більше про серіалізацію ви дізнаєтеся у квесті Java Collections.
assert
— теж надійшов у спадок від С++. З його допомогою в код можна вписати додаткові перевірки (наприклад, чи змінна не дорівнює null). Штука в тому, що ці перевірки вмикаються або вимикаються на етапі компіляції.
Можна зібрати проєкт для внутрішнього тестування, де вони здійснюватимуться (будуть увімкнені). А можна їх і вимкнути під час компіляції: коли компілюєте версію програми, яка буде постачатися користувачам.
Ну а про модифікатор strictfp
і додаткову точність процесорів Intel ми навіть цілу історію розповідали.
10. Зарезервовані, але не використовуються
А ще є два ключових слова, які є зарезервованими, але не використовуються.
const
goto
Це теж спадщина від мови C++, в якій вони є та використовуються.
11. Неключові слова
Константи true
, false
і null
формально не належать до ключових слів, проте мають усі їхні особливості. Ви не можете дати методу назву true
або змінній — назву false
. Компілятор такий код не зрозуміє й не компілюватиме.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ