1. Список слів
У мові Java, як і у будь-якій мові програмування, є слова, які мають особливий зміст. Наприклад, return або if або while. Такі слова називаються ключовими (keywords) і вважаються зарезервованими мовою Java.
Ви не можете використовувати ці слова як ім'я змінної, ім'я методу або класу. Компілятор завжди буде інтерпретувати їх строго визначеним чином. Усього таких слів у Java 54.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Деякі з них ви вже знаєте, а про решту ми зараз поговоримо.
2. Примітивні типи
Як ви вже, скоріш за все, запам’ятали, у Java є 8 примітивних типів, і кожному з них відповідає своє ключове слово:
byteshortintlongcharfloatdoublebooleanvoid
Якщо ви достатньо цікавий, скоріш за все, вже пробували назвати змінну ім’ям int. І, звісно ж, це у вас не вийшло. Саме через те, що всі імена примітивних типів є зарезервованими словами.
Також у цю категорію можна віднести тип void.
3. Цикли та розгалуження
Цикли та розгалуження теж дають нам чималенький список ключових слів:
ifelseswitchcasedefaultwhiledoforbreakcontinue
Усього 10 слів достатньо, щоб у мові з’явилися цикли кількох видів, розгалуження, оператори управління перерванням циклу (break та continue) і множинні розгалуження (switch). З усіма цими ключовими словами ви вже знайомі.
4. Винятки
Винятки дають нам 5 ключових слів:
trycatchfinallythrowthrows
Це блок try-catch-finally. Оператор для викидання винятків — throw, і ключове слово throws для підтримки механізму checked-винятків.
Гарна новина: ви вже знайомі з усіма ключовими словами у винятках, тому більшу частину роботи з винятками ви вже знаєте.
5. Області видимості
Усього три ключових слова, але ви вже з ними знайомі
privateprotectedpublic
public дозволяє доступ до методу/змінної/класу з будь-якого місця програми.
private забороняє доступ до методу/змінної/класу з будь-якого місця програми. Доступ дозволено лише всередині того ж класу, що й метод, позначений модифікатором private.
protected працює так само, як і private, але ще дозволяє звертатися до методу/змінної/класу з класів-нащадків. Переваги цього модифікатора стануть вам зрозумілішими, коли ви добре розберетеся з ООП та наслідуванням.
6. Робота з класами
У цю категорію входить 11 ключових слів:
classinterfaceenumimportpackageextendsimplementsstaticfinalabstractdefault
Їх можна розділити на 4 групи.
Перша група — створення класів: class, interface та enum. З оголошенням класу та enum’у ви вже знайомі. Ключове слово interface використовується для оголошення ще одного «різновиду класів» – інтерфейсів.
Друга група — це вже відомі вам ключові слова package та import. Package використовується для того, щоб описати пакет класу всередині файлу класу. А import — щоб у нашому класі ми могли використовувати короткі імена чужих класів.
Ключові слова extends та implements використовуються для опису наслідування. Їх ви розглянете на самому початку квесту Java Core.
І нарешті, остання група — це модифікатори static, final, default та abstract. Про static та final ви вже трохи знаєте, а ключове слово abstract використовується для того, щоб зробити клас або метод абстрактним. Детальніше — під час вивчення наслідування у квесті Java Core.
7. Робота з об’єктами та змінними
Ще 6 ключових слів використовуються для роботи з об’єктами, методами та змінними.
newinstanceofthissuperreturnvar(починаючи з Java 10)
Оператор new використовується, щоб створювати нові об’єкти – це ви вже знаєте.
Оператор instanceof використовується, щоб перевірити, що певна змінна містить посилання на об’єкт певного типу. З ним ви вже теж знайомі.
Ключове слово this використовується, щоб вирішувати проблеми із затіненням змінних і методів класу. Ви це теж вивчали.
Ключове слово super — це аналог this, тільки при зверненні до методів і змінних класу-батька. Клас-батько ще називають суперкласом.
Оператор return використовується, щоб повернути значення функції, і попутно цю саму функцію завершити.
І нарешті, var — це оголошення змінної з автовиведенням типу. Ви теж із цим вже знайомі.
8. Багатопоточність
Багатопоточність на рівні синтаксису мови Java представлена лише двома словами.
synchronizedvolatile
Ми їх навіть розбирати не будемо. Ось доберетеся до квесту Java Multithreading — тоді й почнемо.
9. Різне
Також є ще 4 унікальних ключових слова:
nativetransientassertstrictfp
native — це модифікатор, який пишеться перед оголошенням методу. Він означає, що код методу написаний не на Java, а на С++ і вбудований у Java-машину (або підключену DLL-бібліотеку). Сама Java-машина, як ви вже, мабуть, здогадуєтеся, теж написана на C++. Як і багато методів стандартних бібліотек.
transient — це модифікатор, який пишеться перед змінними класу (полями класу). Він просить Java-машину пропустити (ігнорувати) змінну під час збереження об’єкта класу — серіалізації. Більше про серіалізацію ви дізнаєтеся у квесті Java Collections.
assert — теж прийшов у спадок від C++. З його допомогою в код можна додати додаткові перевірки (на те, що змінна не дорівнює null, наприклад). Штука в тому, що він вмикається або вимикається на етапі компіляції.
Можна зібрати проєкт для внутрішнього тестування, де ці перевірки будуть здійснюватися (увімкнені). А можна їх і вимкнути під час компіляції: коли компілюєте версію програми, яка буде постачатися користувачам.
Ну а про модифікатор strictfp і додаткову точність процесорів Intel ми навіть цілу історію розповідали.
10. Зарезервовані, але не використовуються
Ще є два ключових слова, які зарезервовані, але не використовуються.
constgoto
Це теж спадок мови C++, де вони є і використовуються.
11. Не ключові слова
Константи true, false і null формально не належать до ключових слів. Проте, мають усі їх особливості. Ви не можете назвати метод true або змінну false. Компілятор такий код не зрозуміє і компілювати його не буде.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ