Функция — это небольшая программа, которая выполняет определённые действия при вызове функции по имени.
В языке Java существуют свои встроенные и готовые к использованию функции, но никто не отменял пользовательских функций.
Пользовательская функция — это функция созданная разработчиком для конкретной задачи.
Написание функций относят к процедурному подходу в программировании.
Чаще всего в функции помещают повторяющийся программный код. Для того, чтобы не писать одни и те же строчки кода, их выносят в отдельный блок, а затем вызывают по имени в основном коде программы когда это необходимо.
Различают два основных вида функций:
- Функция, которая что-то возвращает;
- Функция, которая ничего не возвращает;
Также функции можно разделить на две категории:
- Функция без параметров;
- Функция с параметрами;
Запомните: переменная созданная в функции, умирает после завершения функции и более не существует!
Формула создания функции:
<спецификатор доступа> <указание статичности функции> <тип функции> <имя функции> <(параметры функции)> {тело функции}
Создание функции, которая возвращает
Данный тип функций является наиболее используемым, так как почти всегда требуется что-то посчитать, произвести некое преобразование и тому подобное, следовательно полученный результат необходимо использовать вне функции. Всё что было создано в функции в конечном счёте умирает в ней же, в связи с этим необходимо вернуть результат в основной код программы.
Сделать это помогает оператор return
Создадим функцию, которая вернёт значение переменной и присвоит переменной в основном коде это значение.
1 2 3 4 5 6 7 8 9 10 |
public class Main { public static int func(){ //идентификатор доступа, функция статична, тип возвращаемого значения и имя функции без параметров int n = 10; //создание переменной со значением return n; //возврат значения при вызове данной функции } public static void main(String[] args) { //блок основного кода программы } } |
Создание функции очень похоже на основной блок кода программы. Собственно, это всё.
Создаётся переменная, а потом она возвращается в нужном разработчику месте.
В теле функции можно прописать любой код, создать массивы, циклы и любая другая структура.
Создание функции, которая ничего не возвращает
Данный тип функции используется при работе с глобальными переменными и если нужно что-то напечатать, вывести на экран.
Нет, почти, никакого отличия между данным типом функции и предыдущим. Необходимо лишь указать другой тип функции и не использовать return.
1 2 3 4 5 6 7 8 9 |
public class Main { public static void func1(){ //идентификатор доступа, функция статична, тип возвращаемого значения и имя функции без параметров System.out.println("Привет из функции!"); //вывод на экран сообщения } public static void main(String[] args) { //основной блок программы } } |
Вызов функции без параметров
Чтобы работать с функциями и получать от них какой-то результат, необходимо вызвать функцию по имени в нужном месте.
Используем предыдущие функции и вызовем их в основном блоке.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public class Main { public static int func(){ //идентификатор доступа, функция статична, тип возвращаемого значения и имя функции без параметров int n = 10; //создание переменной со значением return n; //возврат значения при вызове данной функции } public static void func1(){ //идентификатор доступа, функция статична, тип возвращаемого значения и имя функции без параметров System.out.println("Привет из функции!"); //вывод на экран сообщения } public static void main(String[] args) { //основной блок программы int u = func(); //присвоение переменной значения возвращённого функцией System.out.println(u); //вывод на экран значения переменной func1(); //вызов функции по имени } } |
В результате получим на экран
1 2 |
10 Привет из функции! |
Функция, которая что-то возвращает, обязательно должна вызываться таким образом, чтобы возвращаемое значение было чему-то присвоено.
Создание функции с параметрами
Бывает необходимость провести над значениями некие действия. Для этого необходимо передать функции эти самые значения. Когда значения передаются в функцию, то они становятся аргументами функции.
Создадим функцию с параметрами и вызовем её в основном блоке используя аргументы.
Возведём переменную в определённую степень и вернём значение в переменную.
Указываем параметры при создании функции (переменные в скобках после имени функции). Аргументы должны быть переданы обязательно, иначе функция не заработает, у неё элементарно не будет значения с которым она должна взаимодействовать.
Указываем аргументы при вызове функции (два целочисленных значения).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class Main { public static int func2(int var_1, int var_2){ //функция с параметрами int n = 1; //создаём переменную, в которую будем помещать расчётное значение for(int i = 0; i < var_2; i++){ //цикл для возведения в степень n = n * var_1; //умножаем новое значение со старым и тем самым возводим в степень } return n; //возвращаем посчитанное значение } public static void main(String[] args) { //основной блок программы int result = func2(10,2); //вызываем функцию передав два аргумента (возводим десять во вторую степень) System.out.println(result); //вывод значения переменной } } |
В результате получаем
1 |
100 |
В функции вы можете помещать всё что угодно. В данном случае аргументы должны быть переданы обязательно, иначе произойдёт ошибка.
Чтобы ошибки не возникало, можно использовать значения по умолчанию при создании функции, но к сожалению Java обделена такой возможностью, значение по умолчанию в функции задать невозможно.
Таким нехитрым образом мы разобрались с темой «Создание функций на языке Java»!
1 thought on “Создание функций на языке Java”
Степан
(05.10.2020 - 05:11)В статье не описано расположение описания функции относительно main(((