Инициализация переменной – это присваивание переменной значения, которое в дальнейшем она, переменная, будет хранить, и которое можно будет использовать, путем обращения к имени переменной.
Инициализация может производиться одновременно с объявлением, а может – отдельно от него. Во втором случае (отдельно) инициализация переменной всегда должна происходить после объявления переменной.
Инициализация может быть выполнена присвоением переменной значения – для этого используется знак равенства (=) между именем переменной и присваиваемым ей значением.
Инициализация может быть выполнена за счет использования оператора ввода данных с клавиатуры, а также за счет использования математических выражений или других действий, допустимых в языке Java.
Примеры объявления переменных (без инициализации!):
int x;
String string1;
int x1, x2, x3;
char znak;
double inputValue;
Примеры объявления переменной с последующей отдельной(!) инициализацией:
int x;
x=-6;
String string1;
int x1, x2, x3;
string1="Yes";
char znak;
x1=6, x2=0;
double inputValue;
inputValue=5.76, x3=8;
znak='7';
Примеры объявления переменной с одновременной инициализацией – то есть когда и объявление, и инициализация выполняются в одной строке кода:
int x=5;
String string1="no, no, no!!!";
int x1=7, x2, x3=-678;
Примеры объявления переменной с инициализацией через дополнительные возможности языка Java – в частности, через использование правила "сначала вычисли значение – а потом присвой его переменной":
int x1=6, x2, x3;
x2=10+x2;
x3=-x2;
Следует отметить, что возможны и более «экзотические» инициализации типа:
x1=x2=x3=0;
и даже
x1=x2=x3=in.nextInt();
На наш взгляд, не следует увлекаться подобными «сокращениями», особенно на первом этапе знакомства и освоения языка Java.
Очень важно обратить внимание на специфику инициализации переменных типа char и String (напомним, что эти типы являются нечисловыми):
· Переменные типа char инициализируются значениями, заключенными между двумя знаками "апостроф"
· Переменные типа String инициализируются значениями, заключенными между двумя знаками "кавычки".
Следует обратить внимание, что "законченное предложение" в языке Java завершается знаком "точка с запятой" (;), но более подробно правило использования этого знака будет рассмотрено уже в будущих разделах учебника.
Мы не сомневаемся, что каждому будет понятно и без особых дополнительных объяснений, по каким правилам можно использовать математические операторы "сложение" (+), "вычитание" (-), "умножение" (*).
Но ни в коем случае не спешите использовать оператор "деление" (/) – дело в том, что это действие в языке Java принципиально отличается от принятого в математике!
Преждевременное использование этого оператора может поставить неопытного пользователя в тупик. Правильному пониманию того, как этот оператор работает, отведено важное место в будущих темах, и ему посвящено много заданий для практической работы.
И уж, тем более, нет никакого смысла "изобретать" математические операторы, потому что со временем большую часть из них мы опишем и разберем в будущих разделах курса.
Приведем несколько примеров объявления переменных – с пояснениями, какие из них правильные, а какие – ошибочные.
Объявление переменных | Варианты ответа ученика |
int x; | Нет ошибок |
double a,b,c; | Нет ошибок |
int a,a; | Ошибка: дважды используется одно и то же имя переменной |
Int a,b; | Ошибка: тип переменной указан с большой буквой (правильно – int). |
int a, A; | Нет ошибки в имени – большая и маленькая буквы считаются разнымипеременными (хотя это – крайне нежелательно!) |
String kukla1; kukla2; | Ошибка: при перечислении имен в списке используется разделительный знак "запятая" (,), а не знак "точка с запятой" (;) |
char znak1,znak2,znak_1; | Нет ошибок |
int x, a, b; double y,z, x; | Ошибка: одно и то же имя (х) используется дважды в объявлении переменных |
int x; double X; | Нет ошибок |
И еще примеры объявления переменных вместе с их инициализацией – с указанием, какие из них правильные, а какие – ошибочные; и тоже – с обоснованием ответов.
Объявление и инициализация переменных | Варианты ответа ученика |
int x; x=6; | Нет ошибок |
int a=6, b=2.5; | Ошибка: переменная типа "простое целое" получает значение десятичной дроби. |
int b=3; double c; c=5; | Нет ошибок |
int a,b,c=5; b=5; a=-b; | Нет ошибок |
double a=3.6,b; int b=4; | Ошибка: используется дважды имя переменной. |
А вот пример "обратного подхода": даны словесные описания объявления и инициализации переменных, которые затем записаны в правилах языка Java – причем в разных допустимых вариантах.
Словесное описание | Варианты ответа ученика |
Переменная х (типа "простое целое") получает значение 16 | int x; x=16; int x=16; |
Переменные х и t относятся к типу "простое целое", при этом значение переменной х равно -2 | int x,t; x=-2; int x=-2,t; int t, x=-2; |
И еще два примера: даны словесные требования к классу, то есть его описание – а надо сделать его в кодах языка Java.
Пример первый: напишите класс, который будет присваивать значения 5 и 9 двум переменных, а затем третья переменная будет получать значение, равное сумме значений первых двух переменных.