Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
3
Влияние методов на поля экземпляра и статические переменные
Компании, где спрашивали:
Веб-мост
Условие задачи
Дан класс, содержащий статическое поле, поле, объявленное как final, обычное поле экземпляра и метод doIt, который меняет значения этих полей и создаёт новый объект. В main создаётся объект, вызывается doIt, после чего нужно определить, какие значения будут у переменных.
public class A {
private static int y;
private final int instanceNumber;
private int x;
public A(int instanceNumber) {
this.instanceNumber = instanceNumber;
}
public String toString() {
return String.valueOf(instanceNumber);
}
private static void doIt(int i, A a) {
i = 11;
a.x = 12;
a.y = 13;
a = new A(2); // новый объект
a.x = 21;
a.y = 22;
}
public static void main(String[] args) {
A a = new A(1); // создаём объект с instanceNumber = 1
a.x = 1;
a.y = 2;
int z = 3;
A.doIt(z, a); // вызываем метод
// Вопросы:
// a = ? // 1 или 2
// a.instanceNumber = ?
// a.x = ?
// a.y = ?
// z = ?
}
}