Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП лекция2 ООП.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
864.41 Кб
Скачать

Литералы и константы

Литерал - это постоянное значение, записанное в программе в читаемой форме. Например, число 100 - это литерал, одиночный символ и текстовая строка тоже могут быть литералами и т. д.

Литерал отличается от константы и переменной тем, что ему не может быть присвоено значение. На самом деле, в своей программе вы в качестве значений констант и переменных обычно используете литералы. Например:

Counter= 1;

Textstr = "Произвольная строка";

ch = '?';

А = 4е-1;

Здесь Counter, Textstr, S, А – это переменные, а 1, "Произвольная строка", ' ? ', 4е-1 - литералы.

Литерал может иметь значение любого простого типа данных. Тип литерала определяется формой его записи. Например, ' ?' - это литерал символьного типа, а «?» - строкового; 10 - типа int, а 10.0 - типа double. Вещественные числа записываются либо с десятичной точкой, либо в так называемой научной (экспоненциальной) нотации с указанием степени числа 10: 4е-1 - то же самое, что 0.4.

Для того, чтобы заставить компилятор считать литерал, опознаваемый им как данные одного типа, данными другого типа, служат модификаторы типа. Символ L (заглавный или строчный) превращает литерал типа int в литерал типа long:

int nl = 24;

long n2 = 24L;

Вещественные литералы имеют по умолчанию тип данных double. Чтобы его поменять на float, добавьте к присваиваемому значению символ F:

float fl = 12.34F;

Целочисленные литералы распознаются как тип int, но их можно присваивать также переменным других целых типов: short, byte и char - при условии, что значение литерала не выходит за пределы диапазона для соответствующего типа, а переменной типа long - без всяких условий.

Шестнадцатеричные и восьмеричные литералы

Если вы уже когда-нибудь писали программы, то знаете, что нередко при­ходится работать с числами, которые удобнее представлять не в десятичной записи. Язык Java позволяет без труда использовать восьмеричную и шестнадцатеричную формы записи:

hex = OxFF // в десятичной системе соответствует числу 255

oct = 01l //в десятичной системе соответствует числу 9

Если запись числа начинается с нуля, то число понимается как восьме­ричное; если в префиксе «Ох», то - как шестнадцатеричное.

Специальные символы (Esc-последовательности)

Как уже сказано, переменной типа char можно присваивать в качестве зна­чения не только алфавитно-цифровой символ, но и такой, который нельзя ввести с клавиатуры - например, символы, посылаемые клавишами «Таb» или «Backspace». Для того, чтобы использовать такие символы в литералах, служат так называемые Esc-последовательности, то есть символ обратного слэша, за которым следует код вводимого символа (табл. 2.3).

Esc-последовательности в языке Java Таблица 2.3

Примеры:

char ch;

ch = '\t'; // знак табуляции

ch ='\ ''; // символ апострофа

Строковые литералы

Распространенной разновидностью литерала в языке Java является строка - последовательность символов, заключенная в кавычки:

System.out.println("Это строковый литерал");

А что делать, если внутри самой строки встречается кавычка? Не будет ли она воспринята как символ завершения строки? Будет, если ее не экранировать с помощью Esc-последовательности:

System.out.println("0\'Key"); // строка с апострофом

System.out.println("Строка с \"кавычками\"");

Часто строковые литералы используются для указания пути к некоторому файлу. В ОС Windows символом-разделителем пути служит обратный слэш. Его тоже необходимо экранировать с помощью Esc-последовательности:

String filename = "с:\\project\\helloworld\\HelloWorld.java";

Примечание

В ОС семейства Unix для разделения пути служит прямой слэш (/). Интерпретатор Java позволяет использовать этот символ и на платформе Windows. Рекомендуется для единообразия всегда писать пути через прямой слэш. Экранировать этот символ не нужно.

Следующий пример показывает, как использовать Esc-последовательности для представления специальных символов внутри строки.

Листинг 2.9. Символы форматирования текста

public class StrDemo { public static void main(String[] args) {

// для перевода каретки (начала новой строки)

// служит код \п

System.out.println("Первая строкаХпВторая строка");

// знак табуляции помогает оформить выводимый текст // в колонки. Он вводится с помощью кода \t System.out.println("A\tB\tC");

System.out.println("D\tE\tF");

} // main(String[]) method }

// StrDemo class