English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Учебник по основам Java

Java Управление потоком

Java Массив

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений в Java

Java Список (List)

Java Очередь (Queue)

Java Карта (Map)

Java Множество (Set)

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

Методы в Java

В этом руководстве вы изучите Java методы с помощью примеров, как определить метод и как использовать метод в Java-программе.

Что такое метод?

В математике мы, возможно, уже изучали функции. Например, f(x) = x2x - это функция, которая возвращает квадрат.

Если x = 2, то f(2) = 4
Если x = 3, то f(3) = 9
и так далее.

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

В面向对象的 программировании метод - это термин, используемый для функции. Метод привязан к классу и определяет поведение класса.

Перед изучением методов убедитесь, что вы понимаетеJava классы и объекты

Типы методов Java

В Java есть два типа методов: методы, определенные пользователем, и методы, доступные в стандартной библиотеке.

  • Стандартные библиотечные методы

  • Пользовательские методы

Стандартные библиотечные методы

 Стандартные библиотечные методы - это встроенные методы в Java, которые можно использовать в любое время. Эти стандартные библиотеки вместе с Java Class Library (JCL) появляются в Java Archive Files (*.jar) в JVM и JRE.

Например:

  • print() - это метод java.io.PrintStream. Метод print("...") выводит строку в кавычках.

  • sqrt() - это метод из математики. Он возвращает квадратный корень числа.

Вот пример работы:

public class Main {
    public static void main(String[] args) {
    
        //Использование метода sqrt()
        System.out.print("Корень квадратный из 4 равен: " + Math.sqrt(4));
    }
}

вывод:

Корень квадратный из 4 равен: 2.0

Пользовательские методы

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

Как создать пользовательский метод?

Вот как мы создаем методы в Java:

public static void myMethod() {
    System.out.println("Моя функция");
}

Здесь мы создаем метод под названием myMethod(). Мы видим, что перед именем метода мы используем public, static и void.

  • public - это модификатор доступа. Это означает, что метод можно вызывать из любого места. Для получения дополнительной информации обратитесь наJava доступа модификаторы

  • static - это означает, что метод можно вызвать без наличия объекта. Для получения дополнительной информации обратитесь наJava статический ключевой слово

  • void - это означает, что该方法 не возвращает никакого значения. Мы рассмотрим это более подробно в后面的 части этого руководства.

Вот пример того, как мы создаем методы. Однако, полная грамматика определения метода в Java такая:

modifier static returnType nameOfMethod (parameters) {
    // тело метода
}

Здесь,

  • модификатор - Он определяет доступ к методу, как общедоступный метод, частный метод и т.д.

  • static - Если используется ключевое слово static, то к нему можно получить доступ без создания объекта.
    Например, метод sqrt() из стандартного класса Math является статическим. Поэтому мы можем напрямую вызвать Math.sqrt() без создания экземпляра класса Math.

  • типВозврат - Он определяет тип возвращаемого значения метода. Например, если тип возвращаемого значения метода int, то он возвращает целое значение.
    Метод, который может возвращать исходные типы данных (int, float, double и т.д.), основные объекты (String, Map, List и т.д.), или любые другие内置 и пользовательские объекты.
    Если метод не возвращает значение, то его тип возвращаемого значения void.

  • имяМетода - Этоидентификатор, используемые для ссылки на определенный метод в программе.
    Мы можем назвать метод любым именем. Однако, это более обычное практику命名为 его по выполняемой им задаче. Например calculateArea(), display() и т.д.

  • параметры (аргументы) - Это значения, передаваемые методу. Мы можем передать методу любое количество параметров.

  • тело метода - Он включает в себя программные инструкции для выполнения某些 задач. Тело метода содержится в фигурных скобках { }.

    Как вызвать метод Java?

    Теперь мы знаем, как определить метод, и нам нужно узнать, как их использовать. Для этого我们必须 вызвать этот метод. Вот как это делается

    myMethod();

    Эта команда вызывает метод myMethod(), ранее объявленный.

    Дорожная карта вызова метода в Java
    1.  Во время выполнения программы код встречает myFunction().

    2.  Затем выполняется переход к методу myFunction() и выполняется код в его теле.

    3.  После выполнения метода программа возвращается в исходное состояние и выполняет следующую команду после вызова метода.

    Пример: Метод Java

    Давайте посмотрим, как использовать методы в программе Java.

    class Main {
        public static void main(String[] args) {
            System.out.println("Скоро мы встретим метод.");
            //调用方法
            myMethod();
            System.out.println("Метод успешно выполнен!");
        }
        // определение метода
        private static void myMethod(){
            System.out.println("Внутри myMethod() напечатать!");
        }
    }

    вывод:

    Скоро мы встретим метод.
    Внутри myMethod() напечатать!
    Метод успешно выполнен!

    В предыдущем примере у нас есть метод с именем myMethod(). Этот метод не принимает никаких параметров. Таким же образом, тип возвращаемого значения этого метода void (что означает, что он не возвращает никакого значения).

    В этом примере метод статический. Таким образом, мы вызываем этот метод, не создавая объекта класса.

    Давайте рассмотрим другой пример

    class Main {
        public static void main(String[] args) {
            // создание объекта класса Output
            Output obj = new Output();
            System.out.println("Скоро мы встретим метод.");
            // вызов myMethod() класса Output
            obj.myMethod();
            System.out.println("Метод успешно выполнен!");
        }
    }
    class Output {
      
        // public: этот метод может быть вызван из вне класса
        public void myMethod() {
            System.out.println("печать изнутри myMethod()");
        }
    }

    вывод:

    Скоро мы встретим метод.
    печать изнутри myMethod()
    Метод успешно выполнен!

    В примере выше мы создали метод под названием myMethod(), который находится в классе под названием Output.

    Поскольку метод не статический, его вызывают с помощью объекта класса obj.

    obj.myMethod();

    Параметры и возвращаемые значения методов

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

    Пример: метод возвращает значение

    Давайте рассмотрим пример метода с возвращаемым значением.

    class SquareMain {
        public static void main(String[] args) {
            int result;
            // вызов метода и хранение возвращаемого значения
            result = square(); 
            System.out.println("Ввадратное значение 10 равно: " + result);
        }
        public static int square() {
            // оператор return
            return 10 * 10;
        }
    }

    вывод:

    Ввадратное значение 10 равно: 100

    В вышеуказанном программном примере мы создали метод под названием square(). Этот метод не принимает هیچ параметров и возвращает значение 10 * 10.

    Здесь мы упоминаем, что тип возвращаемого значения метода — int. Таким образом,该方法 всегда должна возвращать целое значение.

    Форма представления метода, возвращающего значение

    Как мы видим, диапазон этого метода ограничен, так как он всегда возвращает один и тот же значений. Давайте修改 приведенный выше фрагмент кода, чтобы он всегда возвращал квадрат любого传入 методу целого числа, а не всегда квадрат числа 10.

    Пример: метод принимает параметры и возвращает значение

    public class Main {
       
        public static void main(String[] args) {
            int result, n;
            
            n = 3;
            result = square(n);
            System.out.println("3 в квадрате равен: " + result);
            
            n = 4;
            result = square(n); 
            System.out.println("4的平方是: " + result);
        }
        // 方法
        static int square(int i) {
            return i * i;
        }
    }

    вывод:

    3的平方是: 9
    4的平方是: 16

    在此,square()方法接受一个参数i并返回i的平方。返回的值存储在变量result中。

    在Java中传递参数并从方法中返回值

    如果我们传递任何其他数据类型,而不是int类型的值,则编译器将引发错误。这是因为Java是一种强类型语言。

     在方法调用期间传递给getSquare()方法的参数n称为实际参数。

    result = getSquare(n);

     方法定义接受的参数称为形式参数。形式参数的类型必须显式类型化。

    public static int square(int i) {...}

    我们还可以使用逗号将多个参数传递给Java方法。例如,

    public class Main {
        //方法定义
        public static int getIntegerSum (int i, int j) {
            return i + j;
        }
        // 方法定义
        public static int multiplyInteger (int x, int y) {
            return x * y;
        }
        public static void main(String[] args) {
            //调用方法
            System.out.println("10 + 20 = " + getIntegerSum(10, 20));
            System.out.println("20 x 40 = " + multiplyInteger(20, 40));
        }
    }

    вывод:

    10 + 20 = 30
    20 x 40 = 800

    注意: 实际参数和形式参数的数据类型应匹配,即第一个实际参数的数据类型应与第一个形式参数的数据类型相匹配。同样,第二个实际参数的类型必须与第二个形式参数的类型相匹配,以此类推。

    使用方法的优点是什么?

    1.主要优点是代码可重用性。我们可以编写一次方法,并多次使用它。我们不必每次都重写整个代码。可以将其视为“一次编写,多次重用。例如,

    public class Main {
        //方法定义
        private static int getSquare(int x){
            return x * x;
        }
        public static void main(String[] args) {
            for (int i = 1; i <= 5; i++) {
                // вызов метода
                int result = getSquare(i);
                System.out.println("" + i + " " + "квадрат является: " + result);
            }
        }
    }

    вывод:

    квадрат 1 равен: 1
    квадрат 2 равен: 4
    квадрат 3 равен: 9
    квадрат 4 равен: 16
    квадрат 5 равен: 25

     В上面的 программе мы создали метод getSquare() для вычисления квадрата числа. Здесь, с помощью того же метода вычисляем квадрат чисел менее 6.

     поэтому мы многократно используем один и тот же метод

    метод 2 делает кодлегче для чтения,легче отладкиНапример, метод getSquare() очень читаем, поэтому мы можем понять, что этот метод будет вычислять квадрат числа.