Статические методы

Тренажер по Java для пользователей с начальным уровнем подготовки.

Тренажер по Java

Разберем статические методы в Java. Ключевое слово static означает, что метод принадлежит самому классу, а не конкретному объекту (экземпляру). Это часто используется для создания утилитных функций, например, в классе Math.

Главная особенность: внутри статического метода нельзя использовать ключевое слово this или обращаться к обычным полям класса без создания объекта. Этот тренажер поможет закрепить синтаксис объявления, правила вызова (через имя класса) и ограничения статического контекста. Практические задания включают поиск ошибок и написание вызовов методов.

Список тем

1. Разбор сигнатуры

id: 40486_java_stat_01_highlight

Разметьте сигнатуру публичного статического метода в Java. Для каждого выделенного фрагмента укажите, является ли он модификатором доступа, ключевым словом static, типом возвращаемого значения или именем метода. Это упражнение поможет закрепить понимание структуры объявления метода в Java.

Кликните по каждому выделенному фрагменту и выберите для него подходящий тип из списка под текстом.
{{public~|~t1}} {{static~|~t2}} {{int~|~t3}} {{calculateSum~|~t4}}(int a, int b)
Модификатор доступа
Тип возвращаемого значения
Имя метода
Ключевое слово static
Сообщения
Проверить
Показать подсказку

2. Статика vs Экземпляр

id: 40486_java_stat_02_compare

В этом задании вам нужно сопоставить характеристики методов в Java с их принадлежностью к статическим (static) или нестатическим (non-static) методам. В левой колонке приведены описания свойств и особенностей методов, а в правой — два возможных типа: Static и Non-static. Учтите, что каждый тип в правой колонке используется несколько раз, поэтому существует несколько правильных комбинаций сопоставления. Ваша задача — правильно определить, какие характеристики относятся к статическим методам, а какие — к методам экземпляра.

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
Вызывается через имя класса
Имеет доступ к this
Принадлежит объекту
Общий для всех объектов
Static
Non-static
Static
Non-static
Сообщения
Проверить
Показать подсказку

3. Вызов метода

id: 40486_java_stat_03_replace

В этом задании отрабатывается правильный вызов статического метода. В классе Calculator уже объявлен статический метод public static int sum(int a, int b), который возвращает сумму двух целых чисел. В методе main нужно вызвать этот метод, передав ему числа 7 и 8, и вывести полученный результат на экран. Заполните пропуск так, чтобы вызов статического метода был выполнен в правильном формате: ИмяКласса.имяМетода(аргументы). После заполнения программа должна корректно скомпилироваться и вывести число 15.

Заполните пропуски
public class Main {
    public static void main(String[] args) {
        int result = input1S;
        System.out.println(result);
    }
}

class Calculator {
    public static int sum(int a, int b) {
        return a + b;
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Доступ к полю

id: 40486_java_stat_04_error

В приведённом фрагменте java-кода допущена ошибка, связанная с доступом к полю класса из статического метода. Исправьте код, чтобы программа скомпилировалась и вывела имя на экран.

Найдите ошибку и исправьте
public class Person {
    String name = "Alice";
 
    public static void main(String[] args) {
        System.out.println(name);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Определение метода

id: 40486_java_stat_05_select

В этом задании вам предстоит дополнить объявление метода main в классе Main, выбрав правильные ключевые слова из предложенного списка. Метод main является точкой входа в программу на Java, и его сигнатура должна строго соответствовать требованиям языка. Обратите внимание на порядок модификаторов и тип возвращаемого значения. Для заполнения пропусков используйте выпадающие списки, которые появляются при клике на каждый пропуск.

Нужно правильно расставить в пропуски предложенные варианты
public class Main {
    input1S input2S input3S main(String[] args) {
        System.out.println("Hello, World!");
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

6. Работа статического счетчика

id: 40486_java_stat_06_predict

Проанализируйте представленный код на Java, содержащий класс со статическим полем-счётчиком. Обратите внимание на то, как и где это поле изменяется. Определите, какое значение будет выведено на экран в результате выполнения программы. Выберите правильный вариант ответа из предложенных ниже.

Выберите правильный вариант ответа
public class Counter {
    private static int count = 0;

    public Counter() {
        count++;
    }

    public static int getCount() {
        return count;
    }

    public static void main(String[] args) {
        Counter c1 = new Counter();
        Counter c2 = new Counter();
        Counter c3 = new Counter();
        System.out.println(Counter.getCount());
    }
}
Сообщения
Проверить
Показать подсказку

7. Порядок вызова

id: 40486_java_stat_07_seq

Перед вами строки java-кода, относящиеся к теме статических методов. Они перемешаны. Вам нужно восстановить правильный порядок строк, чтобы получилась корректная java-программа, которая компилируется и запускается. Программа должна содержать объявление класса, статический метод, метод main и вызов статического метода. Обратите внимание на логическую последовательность: класс должен быть объявлен, затем в нём определён статический метод, затем метод main, и внутри main должен быть вызов статического метода.

Расставьте строки в правильном порядке
public class Example {
}
    }
    }
        System.out.println("Hello from static method!");
    public static void main(String[] args) {
    static void printMessage() {
        printMessage();
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру