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 шістнадцяткових символи. Детальніше про це у найближчих лекціях.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ