1. Літерали цілих чисел
А зараз нова цікава тема — літерали. Дані, внесені безпосередньо в код програми, називають літералами. Тут буде йтися не про будь-які дані, а про значення примітивних типів і типу String
.
Наприклад, є такий код:
Код | Літерали |
---|---|
|
|
Літерали в цьому коді — це число 5
, число 10
і рядок Sum=
.
У мові Java все, включно з літералами, має тип. Всі цілочислові літерали (цілі числа) в коді мають тип int
. Тип int є стандартним типом цілих чисел у Java.
Тому, якщо ви у своєму коді вирішите присвоїти цілочисловий літерал змінній типу byte
або short
, проблем не буде. Потрібно тільки, щоб значення літерала було в межах діапазону доступних значень типу змінної.
Компілятор у Java досить розумний, щоб зрозуміти, що змінній типу byte
можна присвоїти цілочисловий літерал 100, тому жодної проблеми не виникне.
Приклади:
Код | Опис |
---|---|
|
Буде нормально скомпільовано. |
|
Буде нормально скомпільовано. |
|
Буде помилка компіляції: максимальне значення типу byte дорівнює 127 . |
У коді можна також використовувати літерали типу long
. Для цього в кінці цілого числа слід написати латинську літеру L або l.
Приклади:
Код | Опис |
---|---|
|
Буде нормально скомпільовано. |
|
Помилка компіляції: 3 мільярди — завелике число для літерала типу int. |
|
Помилка компіляції: літерал має тип long, а змінна — тип int. До того ж число 3 мільярди перевищує максимальне значення типу int. |
Ви, мабуть, звернули увагу, як складно читати великі числа довжиною 10 і більше знаків. Не відразу зрозумієш, що написано в коді: 3 мільярди чи 30. Щоб покращити прочитність коду (а це важливо!), у Java дозволено вставляти в числові літерали символи підкреслення (на значення числа вони не впливають).
Попередній приклад можна переписати з використанням символів підкреслення, і він стане зрозумілішим:
Код | Опис |
---|---|
|
Буде нормально скомпільовано. |
|
Помилка компіляції: 3 мільярди — завелике число для літерала типу int. |
|
Помилка компіляції: літерал має тип long, а змінна — тип int. До того ж число 3 мільярди перевищує максимальне значення типу int. |
Використання коми в числових літералах не допускається, тому що кома використовується з іншою метою. Наприклад, для відокремлення один від одного аргументів під час виклику методу.
2. Літерали дійсних чисел
У коді можна задавати не тільки цілочислові літерали, а й літерали з рухомою крапкою (дійсні числа).
Власне, правило дуже просте: якщо в коді є число з крапкою, то це число — літерал з рухомою крапкою. І не просто літерал, а літерал типу double
.
Можна також створювати літерали типу float, але такі літерали мають закінчуватися літерою F або f.
Приклади:
Код | Опис |
---|---|
|
Буде нормально скомпільовано. |
|
Буде нормально скомпільовано. |
|
Буде нормально скомпільовано. |
|
Буде нормально скомпільовано. |
|
Буде помилка компіляції: змінна має тип float, а літерал — тип double. |
До речі, можна дуже легко перетворити цілочисловий літерал на літерал типу float або double: для цього слід просто дописати до нього суфікс F (для float
) або D (для double
). Приклади:
Код | Опис |
---|---|
|
Буде нормально скомпільовано. |
|
Буде нормально скомпільовано. |
|
Буде помилка компіляції: змінна має тип int , а літерал — тип double . |
Для літералів з рухомою крапкою можна також використовувати «наукову форму запису»: крім значущої частини цього числа, вказується також степінь десяти. Приклад:
Літерал | Математичний запис | Значення |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3. Літерали рядків
У коді також можна задавати цілі рядки тексту. Щоб компілятор вважав рядок саме даними (рядком тексту), а не частиною коду, весь рядок з обох сторін беруть у подвійні лапки.
Якщо в одному рядку коду є кілька подвійних лапок, вони обробляються попарно. Перша подвійна лапка позначає початок літерала, наступна — кінець літерала. Наступна за нею позначає початок наступного літерала, а наступна за нею — кінець цього літерала і т. д.
Кожен такий літерал має тип String
.
Приклади
Код | Пояснення |
---|---|
|
У рядку 5 літералів, кожен з яких складається з одного символу + . |
|
Цей літерал — порожній рядок, тобто рядок, де немає символів. |
|
Тут два літерали. Результатом буде рядок 2+3-5 , а не число. |
|
Тут також два літерали, оператора return тут немає. |
Якщо рядковий літерал надто довгий, його можна розбити на кілька рядків і склеїти оператором «плюс»:
Код | Пояснення |
---|---|
|
Якщо вивести ці рядки на екран, увесь текст буде виведено як один рядок! |
4. Літерали символів
У коді можна задавати не лише рядкові літерали, а й літерали з окремих символів. Тут ідеться не про рядок, що містить один символ, а про літерали типу char
.
На відміну від рядків, символьні літерали беруть в одинарні лапки. Між одинарними лапками обов'язково має бути символ, і тільки один. Не може бути одинарних лапок, між якими нічого немає.
Приклади:
Код | Пояснення |
---|---|
|
Літерал типу char, містить латинську літеру A. |
|
Літерал типу char, містить символ @ |
|
Літерал типу char, містить японський ієрогліф — так теж можна. |
|
Літерал типу char, містить символ у кодуванні Unicode, який задано його номером. |
В останньому прикладі задано символ у кодуванні Unicode за допомогою спеціального запису: спочатку вказано префікс \u
, потім 4 шістнадцяткових символи. Докладніше про це ми розповімо в наступних лекціях.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ