Рубрики
Без рубрики

Учебное пособие по Java – 5 Функций

Функция – это фрагмент кода, который может быть полезен для повторного использования определенного кода. Функция также используется… С пометкой java, учебное пособие, для начинающих.

Функция – это фрагмент кода, который может быть полезен для повторного использования определенного кода. Функция также полезна для разбиения большой логики в коде на множество частей, чтобы создать код, который легко понять. Это базовый синтаксис для создания функции в Java.

modifier static_type return_value func_name(params) {
    // code..
}

Существует два основных типа функций, включая функцию void, которая не имеет возвращаемого значения, и функцию с возвращаемым значением.

Функция Void

Функция Void – это функция, которая не возвращает никакого значения. Базовый синтаксис выглядит следующим образом.

modifier static_type void func_name(params) {
    // code..
}

Это пример использования функции void.

public class MyApp {
    public static void main(String[] args) {
        // call a function called sum and printGreeting
        sum(14,15);
        printGreeting();
    }

    // create a new function without any params
    public static void printGreeting() {
        System.out.println("Hello World!");
    }

    // create a new function to calculate the sum of two integers
    public static void sum(int a, int b) {
        int result = a + b;
        System.out.println("The result is: " + result);
    }
}

Выход

The result is: 29
Hello World!

Основываясь на приведенном выше коде, две функции, вызываемые sum() и print Greeting() , являются статическими функциями. эти функции объявлены как static , потому что эти функции выполняются внутри main() функции, которая имеет ключевое слово static . В принципе, функция static может быть выполнена внутри другой функции static .

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

data_type ... arg_name

Это пример использования переменных аргументов для вычисления суммы целых чисел.

public class MyApp {
    public static void main(String[] args) {
        // call a function called sum with variadic args
        sum(14,15);
        sum(14,15,16,17);
        sum(1,2,3,4);
    }

    // create a new function to calculate the sum of many integers
    public static void sum(int ... nums) {
        int result = 0;
        // calculate the sum using for each
        for (int tmp: nums) {
            result += tmp;
        }
        System.out.println("The result is: " + result);
    }
}

Выход

The result is: 29
The result is: 62
The result is: 10

Основываясь на приведенном выше коде, переменные аргументы в данном случае проиллюстрированы в виде списка целых чисел. Аргумент num может быть повторен с помощью foreach для вычисления суммы многих целых чисел.

Переменные аргументы должны располагаться в последнем из аргументов

// true implementation
public static void average(int size, int ... nums) { }

// false, throw an error
public static void average(int ... nums, int size) { }

Функция с возвращаемым значением

Функция также может иметь возвращаемое значение. Это базовый синтаксис функции с возвращаемым значением.

modifier static_type return_type func_name(params) {
    // code..
}

Это пример использования функции с возвращаемым значением.

public class MyApp {
    public static void main(String[] args) {
        // create a array of integers
        int[] nums = {1,2,3,4,5};
        // call the average function
        int avgResult = average(nums);
        // print out the result
        System.out.println("Average result: " + avgResult);
    }

    public static int average(int[] nums) {
        // perform average calculation
        int result = 0;
        for (int tmp: nums) {
            result += tmp;
        }
        return result / nums.length;
    }
}

Выход

Average result: 3

Основываясь на приведенном выше коде, функция average() возвращает int , что возвращаемое значение хранится внутри переменной avgResult с типом int .

Функции перегрузки

Перегрузка функций – это функция с тем же именем, но с другим количеством аргументов или параметров внутри функции. Пример выглядит следующим образом.

// these functions has a same name called "greet"
// without args
public static void greet() {
    System.out.println("Hello World!");
}

// with one argument
public static void greet(String name) {
    System.out.println("Hello, " + name + "!");
}

// with two arguments
public static void greet(String name, int age) {
    System.out.println("Hello, " + name + "!");
    System.out.println("Your age is: " + age + " years old.");
}

Статическая и Нестатическая функция

Статическая функция – это функция, которая может быть вызвана внутри static function. Статическая функция – это функция, доступная для использования без создания объекта или экземпляра определенного класса. Примером функции static является функция, доступная в классе Math . эти функции доступны в Math class без создания объекта Math class.

// call a pow() function directly from Math class
Math.pow(3,2);

Нестатическая функция – это функция, доступная для использования при создании объекта или экземпляра определенного класса. Это пример нестатической функции с именем sum() в классе с именем Calculator .

// create a class called Calculator
class Calculator {
    // create a fields of integers
    int numOne;
    int numTwo;

    // create a constructor
    public Calculator(int numOne, int numTwo) {
        this.numOne = numOne;
        this.numTwo = numTwo;
    }

    // create a non static function to calculate the sum
    public int sum() {
        return numOne + numTwo;
    }
}

public class MyApp {
    public static void main(String[] args) {
        // create an object of Calculator Class
        Calculator calculator = new Calculator(2,3);
        // call the sum function from the calculator object
        System.out.println("The sum result: " + calculator.sum());
    }
}

Выход

The sum result: 5

Основываясь на приведенном выше коде, функция sum() доступна только в том случае, если создан объект класса Calculator .

Лямбда

Лямбда – это анонимная функция, которая может быть использована для выполнения определенной операции. Это базовый синтаксис lambda в Java.

// The expression's result is directly returned. The complex logic is not allowed.
(param) -> expression

// With two parameters, The expression's result is directly returned.
// The complex logic is not allowed.
(param1, param2) -> expression

// With two parameters, The code block may contains complex logic.
// Use return keyword if the code block is returning the value.
(param1, param2) -> { code block }

Это пример использования лямбды в ArrayList для умножения каждого вставленного значения на 2.

import java.util.ArrayList;
import java.util.List;

public class MyApp {
    public static void main(String[] args) {
        // create a new list of integers
        List numbers = new ArrayList<>();

        // add some integers
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);

        // using lambda function
        numbers.forEach((num) -> System.out.println(num * 2));
    }
}

Выход

2
4
6

Основываясь на приведенном выше коде, функция forEach() использует лямбда-функцию для умножения значения на 2 и вывода результата. Это лямбда-функция, которая использовалась в этом коде.

(num) -> System.out.println(num * 2)

Рекурсивная функция

Рекурсивная функция в основном доступна во многих языках программирования, включая Java. Рекурсивная функция – это функция, которая вызывается внутри своей собственной функции. Некоторую проблему можно решить с помощью рекурсивной функции, включающей вычисление последовательности Фибоначчи. Проверьте эту ссылку , чтобы узнать больше о последовательности Фибоначчи.

public class MyApp {
    public static void main(String[] args) {
        int result = fibonacci(5);
        System.out.println(result);
    }

    // using recursive function
    public static int fibonacci(int num) {
        if (num <= 2) // base case
            return 1;
        else // recursive case
            return fibonacci(num - 1) + fibonacci(num - 2);
    }
}

Выход

5

Основываясь на приведенном выше коде, в рекурсивной функции есть два основных компонента. Компоненты являются базовым регистром и рекурсивным регистром. Базовый вариант в основном предназначен для определения того, когда рекурсивное выполнение прекращается. Рекурсивный случай – это операция, которая выполняется до базового случая.

Это иллюстрация того, как работает функция фибоначчи() .

При использовании рекурсивной функции убедитесь, что входные данные не слишком велики, чтобы избежать исключения переполнения стека.

Источники

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

Оригинал: “https://dev.to/nadirbasalamah/java-tutorial-5-function-1cef”