Глава 4. Базовый синтаксис и основные конструкции языка ← Вернуться к списку глав Глава 6. Работа со строками

Глава 5. Методы и функции

Ниже представлена подробная пятая глава, ориентированная на новичков. В предыдущих главах мы научились писать простые программы, использовали переменные, условия, циклы, читали данные с клавиатуры. Теперь пришло время лучше организовать наш код — научиться разбивать его на логические блоки, которые называются методами (или функциями).


Глава 5. Методы и функции

5.1 Зачем нужны методы?

До этого мы писали весь код в методе main. Если ваша программа маленькая, это может быть приемлемо. Но по мере роста сложности вам нужно будет разбивать логику на более мелкие части — методы.

Метод — это своеобразный "подпрограмма" внутри вашего кода, которая выполняет определённую задачу. Это как рецепт определённого действия: один раз написали, а потом можете вызывать его многократно из разных мест кода. Использование методов делает код:

5.2 Как определить метод?

Метод объявляется внутри класса. Мы уже знаем, что есть специальный метод main, который запускается при старте программы. Но вы можете создавать свои методы с любыми именами (кроме ключевых слов) и параметрами.

Общий шаблон объявления метода:

[модификатор доступа] [дополнительные ключевые слова] типВозврата имяМетода(параметры) {
    // тело метода
    // здесь пишется код, который выполняет задачу метода
}

Не пугайтесь сложных слов, давайте разбираться по частям.

5.3 Пример простого метода без параметров и без возвращаемого значения

Давайте напишем метод, который просто напечатает "Привет!" на экран.

public static void printHello() {
    System.out.println("Привет!");
}

Обратите внимание: мы указали public static void printHello().

Чтобы вызвать этот метод из main, напишите:

public class Main {
    public static void main(String[] args) {
        printHello(); // Вызов метода
        printHello(); // Можно вызвать несколько раз
    }

    public static void printHello() {
        System.out.println("Привет!");
    }
}

При запуске программы в консоли будет:

Привет!
Привет!

5.4 Методы с параметрами

Часто нужно, чтобы метод принимал на вход какие-то данные, с которыми он будет работать. Для этого используются параметры.

Пример: метод, который выведет на экран "Привет, ИМЯ!" где ИМЯ — это параметр метода.

public static void printGreeting(String name) {
    System.out.println("Привет, " + name + "!");
}

Вызов этого метода:

public class Main {
    public static void main(String[] args) {
        printGreeting("Аня");
        printGreeting("Иван");
    }

    public static void printGreeting(String name) {
        System.out.println("Привет, " + name + "!");
    }
}

Результат:

Привет, Аня!
Привет, Иван!

Здесь String name — это параметр метода. Когда мы вызвали printGreeting("Аня"), внутри метода name стало "Аня".

Вы можете добавить несколько параметров:

public static void printSum(int a, int b) {
    System.out.println("Сумма: " + (a + b));
}

Вызов:

printSum(3, 5); // напечатает "Сумма: 8"
printSum(10, 20); // напечатает "Сумма: 30"

5.5 Методы с возвращаемым значением

Иногда метод должен не просто что-то сделать, но и вернуть результат, чтобы его можно было использовать дальше в программе.

Для этого укажите вместо void тип данных, который метод вернёт. В конце метода используйте оператор return.

Пример: метод для сложения двух чисел и возвращения их суммы:

public static int sum(int x, int y) {
    int result = x + y;
    return result; // возвращаем результат
}

Теперь мы можем вызвать этот метод и использовать возвращаемое значение:

public class Main {
    public static void main(String[] args) {
        int total = sum(5, 7);
        System.out.println("Сумма: " + total);
    }

    public static int sum(int x, int y) {
        int result = x + y;
        return result;
    }
}

Вывод:

Сумма: 12

Обратите внимание, что после return метод заканчивает свою работу и передаёт значение обратно тому, кто его вызвал.

5.6 Несколько вызовов одного и того же метода

Методы помогают избегать дублирования кода. Если вам нужно посчитать сумму разных чисел в разных местах программы, вы просто вызываете sum с нужными параметрами:

int sum1 = sum(10, 20);
int sum2 = sum(100, 200);
System.out.println("Сумма 1: " + sum1);
System.out.println("Сумма 2: " + sum2);

Результат:

Сумма 1: 30
Сумма 2: 300

5.7 Полезные советы по методам

5.8 Пример: разбиваем программу на методы

Допустим, вы хотите программу, которая спросит у пользователя число, затем выведет квадраты чисел от 1 до этого числа, а потом скажет "Готово!".

Без методов это выглядело бы примерно так:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите число: ");
        int n = scanner.nextInt();

        for (int i = 1; i <= n; i++) {
            int square = i * i;
            System.out.println("Число: " + i + ", квадрат: " + square);
        }

        System.out.println("Готово!");
    }
}

С методами можно сделать код более структурированным:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int n = readNumber();
        printSquares(n);
        printDoneMessage();
    }

    public static int readNumber() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите число: ");
        return scanner.nextInt();
    }

    public static void printSquares(int count) {
        for (int i = 1; i <= count; i++) {
            int square = i * i;
            System.out.println("Число: " + i + ", квадрат: " + square);
        }
    }

    public static void printDoneMessage() {
        System.out.println("Готово!");
    }
}

Теперь в main видно общий сценарий: прочитай число, выведи квадраты, напечатай "Готово!". Логику можно легко понять, а детали спрятаны в соответствующих методах.

5.9 Подводим итоги

В этой главе мы:

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


На этом мы завершаем пятую главу. В следующей главе мы поговорим о работе со строками: узнаем, как их сравнивать, разбивать, искать подстроки, изменять регистры и многое другое. Это поможет вам обрабатывать текстовые данные более уверенно и эффективно.

Глава 4. Базовый синтаксис и основные конструкции языка ← Вернуться к списку глав Глава 6. Работа со строками

Просмотров: 56