Ниже представлена подробная пятая глава, ориентированная на новичков. В предыдущих главах мы научились писать простые программы, использовали переменные, условия, циклы, читали данные с клавиатуры. Теперь пришло время лучше организовать наш код — научиться разбивать его на логические блоки, которые называются методами (или функциями).
До этого мы писали весь код в методе main
. Если ваша программа маленькая, это может быть приемлемо. Но по мере роста сложности вам нужно будет разбивать логику на более мелкие части — методы.
Метод — это своеобразный "подпрограмма" внутри вашего кода, которая выполняет определённую задачу. Это как рецепт определённого действия: один раз написали, а потом можете вызывать его многократно из разных мест кода. Использование методов делает код:
Метод объявляется внутри класса. Мы уже знаем, что есть специальный метод main
, который запускается при старте программы. Но вы можете создавать свои методы с любыми именами (кроме ключевых слов) и параметрами.
Общий шаблон объявления метода:
[модификатор доступа] [дополнительные ключевые слова] типВозврата имяМетода(параметры) {
// тело метода
// здесь пишется код, который выполняет задачу метода
}
Не пугайтесь сложных слов, давайте разбираться по частям.
public
, чтобы к методу можно было обратиться из другого места.static
): на начальном этапе часто используем public static
, чтобы можно было вызывать метод без создания объекта класса.int
, double
, String
и т.д. Если метод ничего не возвращает, укажите void
.printMessage
, sumNumbers
и т.д.()
.Давайте напишем метод, который просто напечатает "Привет!" на экран.
public static void printHello() {
System.out.println("Привет!");
}
Обратите внимание: мы указали public static void printHello()
.
void
означает, что метод ничего не возвращает. Он просто выполняет действие — печатает приветствие.Чтобы вызвать этот метод из main
, напишите:
public class Main {
public static void main(String[] args) {
printHello(); // Вызов метода
printHello(); // Можно вызвать несколько раз
}
public static void printHello() {
System.out.println("Привет!");
}
}
При запуске программы в консоли будет:
Привет!
Привет!
Часто нужно, чтобы метод принимал на вход какие-то данные, с которыми он будет работать. Для этого используются параметры.
Пример: метод, который выведет на экран "Привет, ИМЯ!" где ИМЯ
— это параметр метода.
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"
Иногда метод должен не просто что-то сделать, но и вернуть результат, чтобы его можно было использовать дальше в программе.
Для этого укажите вместо 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
метод заканчивает свою работу и передаёт значение обратно тому, кто его вызвал.
Методы помогают избегать дублирования кода. Если вам нужно посчитать сумму разных чисел в разных местах программы, вы просто вызываете 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
calculateArea()
, printUserData()
, getMaxValue()
и т.д.Допустим, вы хотите программу, которая спросит у пользователя число, затем выведет квадраты чисел от 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
видно общий сценарий: прочитай число, выведи квадраты, напечатай "Готово!". Логику можно легко понять, а детали спрятаны в соответствующих методах.
В этой главе мы:
void
(ничего не возвращающими) и с возвращаемым значением (int
, String
и т.д.).return
.Это основа для более продвинутых концепций: в дальнейшем вы узнаете о методах в контексте объектов и классов (в ООП), научитесь использовать параметры разного типа и разное количество, а также писать методы с более сложной логикой.
На этом мы завершаем пятую главу. В следующей главе мы поговорим о работе со строками: узнаем, как их сравнивать, разбивать, искать подстроки, изменять регистры и многое другое. Это поможет вам обрабатывать текстовые данные более уверенно и эффективно.
Просмотров: 56