Java: Изменение переменной
Само слово «переменная» говорит, что ее можно менять. И действительно, с течением времени внутри программы, значения переменных могут изменяться:
var greeting = "Father!";
System.out.println(greeting);
System.out.println(greeting);
// var уже не используется, так как переменная была определена выше
greeting = "Mother!";
System.out.println(greeting);
System.out.println(greeting);Java — статически типизированный язык. Это значит, что тип переменной задается при определении и больше не меняется.
В примере выше мы присвоили строку при создании переменной. Компилятор запоминает тип и проверяет все последующие изменения переменной. Если попробовать этой же переменной присвоить число, то мы получим следующую ошибку:
greeting = 5;
# Error:
# incompatible types: int cannot be converted to java.lang.String
# несовместимые типы: число не может быть превращено в строкуКомпилятор делает такую проверку без запуска кода на выполнение, именно поэтому такой вид типизации называют статическим. В JavaScript, Ruby, PHP, Python и других динамических языках подобное поведение не является ошибкой, переменная может легко изменить свой тип в процессе работы.
Задание
В коде определена переменная со значением "Brienna". Переопределите значение этой переменной и присвойте ей такую же, но в перевернутом виде.
anneirBВаше упражнение проверяется по этим тестам
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 = "anneirB";
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
