Error: The local variable a may not have been initialized

 

Смысл этого сообщения в том, что переменная не инициализирована – ну и, соответственно, класс не имеет возможности вывести на экран ее значение, так как никакого значения переменной не присвоено.

 

Информация, записанная в команде вывода на экран, внутри скобок, в кавычках, выводится на экран точно в таком же виде, в каком она написана в кавычках («как записано, так и печатается»). Например, команда System.out.println("х") выведет на экран х – запись х в кавычках означает, что язык не воспринимает х как имя переменной, а как "просто букву".

 

Знак «плюс» в командах вывода на экран (+) имеет два смысла и, соответственно, означает совершенно разные действия:

· Указание на выполнение арифметического действия

· Указание на «приклеивание рядом» двух разных видов информации (вне кавычек и в кавычках).

 

Как видите, разница между тем, к каким результатам приводит использование в команде вывода знака "плюс" (+) – просто огромная. Строго говоря, это даже не разница в обычном смысле – между знаком "плюс", означающим математическое действие сложения, и между знаком "плюс", означающим операция "приклеивания", просто нет ничего общего. Невнимательность к использованию этого, казалось бы, совершенно простого знака действия, непонимание разницы между действиями, которые этот знак обозначает, нередко приводят к результатам, которые автор класса совершенно не рассчитывал получить.

 

Таблица примеров

(везде значение переменной х равно 4, а значение переменной y равно 7)

 

Команда Как выглядит вывод на экран
System.out.println(x)
System.out.println(“x=”) x=
System.out.println(“x=”+x) x=4
System.out.println(x+”x=”) 4x=
System.out.println(x+y)
System.out.println(“x+y”) x+y
System.out.println(“x+y”+(x+y)) x+y11
System.out.println(“x=”+x+” y=”+y) x=4 y=7
System.out.println(x+”+”+y+”=”+(x+y)) 4+7=11

 

Наш опыт работы однозначно свидетельствует: очень важно на самом начальном этапе практической работы по написанию классов на языке Java делать как можно большее число несложных задач на вывод одной и той же информации в самых разных комбинациях. Компьютеру, разумеется, совершенно безразлично, в каком виде информация выводится на экран – и выводится ли вообще. Но для формирования навыков написания «дружественных к пользователю» классов это очень важно.