Java: Что такое переменная
Представьте себе задачу — нужно напечатать на экран фразу Father! два раза. Эту задачу можно решить в лоб:
System.out.println("Father!"); // => Father!
System.out.println("Father!"); // => Father!В простейшем случае так и стоит поступить, но если фраза Father! начнет использоваться чаще, да еще и в разных частях программы, то придется ее везде повторять. Проблемы с таким подходом начнутся тогда, когда понадобится изменить нашу фразу, а такое происходит довольно часто. Нам придется найти все места, где использовалась фраза Father! и выполнить необходимую замену. А можно поступить по-другому. Вместо копирования нашего выражения, достаточно создать переменную с этой фразой:
// greeting – переводится как приветствие
// var – нужен только при определении переменной
var greeting = "Father!";
System.out.println(greeting);
System.out.println(greeting);В строчке var greeting = "Father!" - происходит присваивание значения "Father!" переменной с именем greeting.
Когда переменная создана, можно начать ее использовать. Она подставляется в те места, где раньше стояла наша фраза. Во время выполнения кода в строке System.out.println(greeting) вместо переменной подставляется ее содержимое, а затем выполняется код. В результате вывод нашей программы будет таким:
Father!
Father!Для имени переменной используется любой набор допустимых символов, к которым относятся буквы английского алфавита, цифры, символ нижнего подчеркивания _. При этом цифру нельзя ставить в начале. Имена переменных регистрозависимы, то есть имя hello и имя heLLo - это два разных имени и две переменные. Ниже пример с двумя разными переменными:
var greeting1 = "Father!";
System.out.println(greeting1);
System.out.println(greeting1);
var greeting2 = "Mother!";
System.out.println(greeting2);
System.out.println(greeting2);Father!
Father!
Mother!
Mother!Для удобства анализа программы переменные принято создавать как можно ближе к тому месту, где они используются.
Задание
Создайте переменную с именем motto и содержимым What Is Dead May Never Die!. Распечатайте содержимое переменной.
What Is Dead May Never Die!Полезное
Ваше упражнение проверяется по этим тестам
import java.io.ByteArrayOutputStream;
import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.PrintStream;
import static org.assertj.core.api.Assertions.assertThat;
class Test {
public static void main(String[] args) {
final var expected = "What Is Dead May Never Die!";
ByteArrayOutputStream out = new ByteArrayOutputStream();
System.setOut(new PrintStream(out));
App.main(null);
final var actual = out.toString().trim();
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
System.out.println(actual);
assertThat(actual).isEqualTo(expected);
}
}Решение учителя откроется через:
20:00
