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