Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8-14.doc
Скачиваний:
0
Добавлен:
13.01.2020
Размер:
83.46 Кб
Скачать

8) Переменные. Динамическая инициализация переменных.

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

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

<тип> <идентификатор> [=<инициализатор>][, <идентификатор>[=<инициализатор>]…];

Например:

int a, b=2, c;

byte k=12;

double pi=3.14159;

char ch=’x’;

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

double a = 3.0, b = 4.0; // катеты прямоугольного треугольника

double c = Math.sqrt(a*a+b*b); // гипотенуза прямоугольного треугольника

Т.о. ключевой момент заключается в том, что выражение инициализации может использовать любой элемент, допустимый во время инициализации, включая вызовы методов, другие переменные или литералы.

9) Область действия (scope) и время жизни переменных

Область видимости определяет ту часть программы, где имена декларированных (в данном блоке) объектов являются «видимыми» из других частей программы. Эта область определяет также и «время (продолжительность) жизни» этих объектов.

Существующая во многих языках программирования градация переменных на глобальные и локальные в Java является недопустимой. В Java-программах можно выделить две основных области действии: одна определяется классом, а другая – методом.

Область действия, определенная методом, начинается с его открывающей фигурной скобки. Данная область действия также включает его параметры, если таковые имеются.

Можно сформулировать общее правило: переменные, объявленные внутри области действия, невидимы (т.е. недоступны) коду, который определен вне этой области. Т.е. при объявлении переменной в пределах некоторой области действия, происходит ее локализация и переменная защищается от неправомерного доступа и/или модификации, т.о. правила области видимости обеспечивают основу для инкапсуляции.

Области действия могут быть вложенными. В этом случае время действия переменной определяется кодом заключенным между парными фигурными скобками.

Декларированные в программе переменные создаются во время входа в их область действия и разрушаются при выходе из нее. Если объявление переменной содержит инициализатор, то эта переменная будет повторно инициализироваться каждый раз при входе в блок, в котором она объявлена.

Пример:

class LifeTime{

public static void main (String args[]){

int x;

for (x=0; x<3; x++){

int y= –1; // y

System.out.println(“y = “ +y); //

y=100 ; //

System.out.println(“y = “ +y); //

}

}

}

Хотя блоки могут быть и вложенными, во внутреннем блоке нельзя объявлять переменную с таким же именем, как во внешней области действия. (В С/С++ это приемлимо, а вJava – незаконно)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]