Здесь разбираем static поля в Java: общие данные, которые принадлежат классу, а не объектам. Это важно для счётчиков, общих настроек и констант. Доступ возможен через имя класса: ClassName.field, а значение разделяется всеми экземплярами. Пример: если поле-счётчик увеличивать в конструкторе, то оно будет расти при создании каждого объекта. В задачах и тренажёре Java онлайн часто проверяют понимание: где хранится значение, когда оно меняется и как влияет на разные объекты.
- Модуль 1: Первая программа и структура
- Модуль 2: Переменные и типы данных
- Объявление и инициализация переменных.
- Примитивы: целые числа (int, long, byte, short).
- Примитивы: дробные числа (double, float).
- Примитивы: логический тип (boolean).
- Примитивы: символьный тип (char).
- String — основы работы со строками.
- Приведение типов (Casting): расширение и сужение.
- Область видимости переменных (Scope).
- Модуль 3: Операторы
- Модуль 4: Управляющие конструкции
- Модуль 5: Массивы и Строки (Advanced)
- Создание и заполнение массива.
- Доступ к элементам по индексу.
- Свойство length и перебор массива.
- Цикл for-each для массивов.
- Многомерные массивы.
- Методы String: length, charAt, isEmpty.
- Манипуляции: substring, concat, replace.
- Сравнение строк: equals vs ==.
- Разделение строк (split) и trim.
- StringBuilder (изменяемые строки).
- Модуль 6: Методы
- Модуль 7: Классы и Объекты (ООП Часть 1)
- Модуль 8: Капсуляция и Модификаторы
- Модуль 9: Наследование и Полиморфизм (ООП Часть 2)
- Модуль 10: Обработка исключений
- Модуль 11: Коллекции и Дженерики
- Модуль 12: Функциональный стиль (Java 8+)
- Модуль 13: Полезные стандарты
1. Доступ к static полю через класс
В этом задании вам нужно заполнить пропуски в Java-коде, чтобы корректно объявить static поле и обратиться к нему через имя класса. Код включает объявление static поля, создание объектов класса и вывод значения поля. Выберите подходящие варианты из выпадающего списка для каждого пропуска.
public class StaticDemo {
public input1S int count = 0;
public static void main(String[] args) {
StaticDemo obj1 = new StaticDemo();
StaticDemo obj2 = new StaticDemo();
System.out.println(input2S.input3S);
}
}2. Исправь обращение к static
В данном фрагменте кода на Java допущена ошибка, связанная с некорректным обращением к статическому полю. Статические поля принадлежат классу в целом, а не конкретным экземплярам, поэтому обращение к ним имеет свои особенности. Найдите и исправьте строку с ошибкой, чтобы программа корректно вывела значение статического поля на экран.
public class Counter { static int count = 0; public static void main(String[] args) { Counter obj = new Counter(); System.out.println(this.count); }}3. Что выведет этот код?
Проанализируйте приведённый ниже код на Java. Обратите внимание на использование статического поля для подсчёта количества созданных объектов класса. Определите, что будет выведено на консоль после выполнения метода main. Выберите один правильный вариант из предложенных.
class Counter {
private static int count = 0;
public Counter() {
count++;
}
public static int getCount() {
return count;
}
}
public class Main {
public static void main(String[] args) {
Counter c1 = new Counter();
Counter c2 = new Counter();
Counter c3 = new Counter();
System.out.println(Counter.getCount());
}
}4. Разметь: static поле, поле объекта, конструктор
В данном фрагменте кода Java выделены несколько элементов. Разметьте каждый выделенный элемент, указав, является ли он static полем, полем экземпляра (объекта), конструктором, вызовом конструктора или обращением к полю. Обратите внимание на ключевые слова и контекст использования каждого элемента.
public class Counter {
static int {{count~|~t1}} = 0;
int {{value~|~t2}};
{{public Counter(int value) {~|~t3}}
this.value = value;
count++;
}
public static void main(String[] args) {
Counter c1 = {{new Counter(10);~|~t4}}
System.out.println({{c1.value~|~t5}});
System.out.println({{Counter.count~|~t6}});
}
}5. Собери класс со static полем и выводом
Из предложенных строк соберите корректную java-программу, которая объявляет класс MyClass со статическим полем count, создаёт объект этого класса в методе main и выводит значение статического поля. Одна из строк является лишней и приведёт к ошибке компиляции, поэтому её не нужно включать в решение.
public class MyClass { static int count = 5; int nonStaticField = 10; public static void main(String[] args) { MyClass obj = new MyClass(); System.out.println(MyClass.count); System.out.println(nonStaticField); }}6. Порядок: инициализация static и создание объектов
Перед вами описаны шаги, которые происходят при запуске Java-программы, использующей статические поля. Эти шаги перемешаны. Восстановите правильную последовательность событий, начиная с загрузки класса и заканчивая выводом значения. Учтите порядок инициализации статических полей, выполнения метода main и создания объектов.
7. Итоговое значение static поля
Проанализируйте приведённый фрагмент кода на Java. Обратите внимание на статическое поле класса, которое изменяется несколько раз: в конструкторе при создании объектов и непосредственно в методе main. Определите, какое значение будет выведено на экран после выполнения программы. Введите одно число без дополнительных символов.
public class Main {
static int counter = 0;
public Main() {
counter++;
}
public static void main(String[] args) {
new Main();
new Main();
new Main();
counter += 5;
System.out.println(counter);
}
}