Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
49
Добавлен:
12.05.2015
Размер:
1.82 Mб
Скачать

Глава 3. Типы данных, переменные и массивы

Таблица 3.3 (окончание)

Escape-последовательность Описание

\f Перевод страницы

\t Символ табуляции (Tab)

\b Возврат на один символ (Backspace)

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

Строковые литералы в Java определяются так же, как в большинстве других языков — включением последовательности символов между парой двойных кавычек. Примеры строковых литералов:

"Hello World"

"two\nlines"

"\"'This is in quotes\""

Escape-последовательности и восьмеричные/шестнадцатеричные системы обозначений, которые были определены для символьных литералов, рабо­тают аналогичным образом и внутри строковых литералов. Обратите внима-ние на одну важную деталь: строковые литералы должны начинаться и за­канчиваться на той же строке. Никакой escape-последовательности продол­жения строки не существует, как в других языках.

В большинстве других языков, включая C/C++, строки реализованы как масси­вы символов. Однако в Java дело обстоит не так. Строки — фактически объ­ектные типы. Как вы увидите позднее, вследствие того, что Java реализует строки как объекты, он включает обширные возможности обработки строк, ко­торые являются мощными и удобными в пользовании.

Переменные

Переменная — базовая единица хранения в Java-программе. Переменная определена комбинацией идентификатора, типа, и необязательного инициа­ лизатора. Кроме того, все переменные имеют область, которая определяет их видимость, и время жизни. ,

Объявление переменной

В Java все переменные должны быть объявлены прежде, чем они могут быть использованы. Основная форма (формат) объявления переменной выглядит так:

type identifier [ = value] [ , identifier [ = value] . . . ] ;

64 Часть I. Язык Java

Здесь type — один из типов Java, имя класса или интерфейса. (Понятия "класс" и "интерфейс" обсуждаются позже в Части I этой книги.) identifierэто имя переменной. Можно инициализировать переменную, определяя знак ра­венства (=) и value (в виде литерала подходящего типа). Имейте в виду, что выражение инициализации должно привести к значению того же самого (или совместимого) типа, как и значение, которое определено для перемен­ной. Чтобы объявлять несколько переменных указанного типа, используйте список, разделенный запятыми.

Несколько примеров объявлений переменных различных типов (обратите внимание, что некоторые включают выражения инициализации):

int а, Ь, с; // три int-переменных а, Ь и с

int d = 3, е, f = 5; // три int-переменных, d и f инициализируются

byte z = 22; // инициализирует z

double pi =3.14159; // аппроксимация ПИ

char x = 'x'; // переменная х имеет значение 'х'

Идентификаторы, которые вы выбираете, не имеют ничего встроенного в своих именах, что бы указывало на их тип. Многие читатели помнят, когда ФОРТРАН предопределял все идентификаторы буквами от I до N, чтобы те имели тип integer, в то время как все другие идентификаторы были real. Java позволяет любому должным образом оформленному идентификатору иметь любой объявленный тип.

Динамическая инициализация

Хотя предшествующие примеры использовали только константы в качестве инициализаторов, Java позволяет переменным быть инициализированными динамически, используя любое выражение, допустимое во время объявления переменной.

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

// Демонстрирует динамическую инициализацию, class Dynlnit {

public static void main(String args[]) { double a = 3.0, b = 4.0;

// переменная с динамически инициализирована double с = Math.sqrt(a * а + b * b);

System.out.println("Гипотенуза равна " + с); } }

Соседние файлы в папке JavaLit