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