
- •8) Переменные. Динамическая инициализация переменных.
- •9) Область действия (scope) и время жизни переменных
- •10) Одномерные массивы
- •11)Многомерные массивы. Нерегулярные массивы.
- •12) Операции присваивания и сравнения. Операции присваивания и сравнения
- •13) Арифметические операции
- •14) Поразрядные операции. В Java определено несколько поразрядных, или битовых, операций. Эти операции применимы только к целочисленным типам.
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 – незаконно)