Методы в Java описание и использование

Методы Java — это место, где вы помещаете операции с данными (переменными) в свой код. Другими словами, вы группируете операции (код) внутри них. Методы должны находиться внутри класса Java.

Похожи на то, что называется функциями или процедурами в других языках программирования (например, Pascal или JavaScript). Метод — это группа операторов, которые выполняют некоторую операцию с некоторыми данными и могут возвращать или не возвращать результат.

Вот простой пример:

public MyClass{

    public void writeText(String text) {
        System.out.print(text);   //prints the text parameter to System.out.
    }
}

В приведенном выше примере определяется метод с именем writeText внутри класса с именем MyClass. Метод принимает один параметр с именем text, который используется в операторе внутри метода, и не возвращает никакого значения.

Параметры метода

Параметры метода позволяют передавать значения в метод, с которым он может работать. Объявляются в скобках после имени метода:

public void writeText(String text1, String text2) {
    System.out.print(text1);
    System.out.print(text2);
}

Метод writeText в приведенном выше примере принимает два параметра: text1 и text2. Они имеют тип String, как написано перед каждым именем параметра.

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

Параметры против переменных

Параметр метода похож на переменную. Вы можете прочитать его значение, а также изменить:

public MyClass{

    public void writeText(String text1, String text2) {
        System.out.print(text1);    // read value of text1 parameter.
        System.out.print(text2);    // read value of text2 parameter.

        text1 = "new value 1";      // change value of text1
        text2 = "new value 2";      // change value of text2
    }
}

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

Вызов метода writeText() выглядит следующим образом:

MyClass myClassObj = new MyClass();

myClassObj.writeText("Hello", "World");

Обратите внимание, как параметры метода записываются в скобках после имени метода. Когда приведенный выше код выполняется, метод writeText() будет выполнен, а параметры содержать значения «Hello» и «World».

Конечные параметры

Параметр метода может быть объявлен как final, как переменная. Значение окончательного параметра не может быть изменено. То есть, если параметр является ссылкой на объект, ссылка не может быть изменена, но значения внутри объекта все еще могут быть изменены. Вот пример:

public void writeText(final String text1, final String text2) {
    System.out.print(text1);    // read value of text1 parameter.
    System.out.print(text2);    // read value of text2 parameter.
}

В этом примере метода вы не можете переназначить параметры text1 и text2 на любые другие строки, кроме тех, которые были переданы в качестве параметров при вызове.

Локальные

Вы можете внутри метода объявить локальные переменные. Они могут использоваться точно так же, как любая другая переменная, но доступна только внутри области действия метода. Вот пример:

public void writeText() {
    int localVariable1 = 1;
    int localVariable2 = 2;

    System.out.println( localVariable1 + localVariable2 );
}

Локальные переменные также могут быть объявлены как окончательные. Если вы объявите их как final, значение не может быть изменено. Если переменная является ссылкой на объект, то ее нельзя изменить, но значения внутри ссылочного объекта все еще можно изменить.

Тип возврата метода

Метод может вернуть значение:

public int sum(int value1, int value2) {
    return value1 + value2;
}

Этот метод добавляет два переданных ему параметра и возвращает результат.

Обратите внимание:

  1. На тип возвращаемого значения int, которое выделено жирным шрифтом перед именем метода (сумма). Этот возвращаемый тип сигнализирует, что этот метод возвращает int.
  2. На заявление о возврате. Оператор return определяет, какое значение возвращается методом.

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

public String concat(String string1, String string2) {
    return string1 + string2;
}

Этот метод объединяет две строки, переданные в качестве параметров, и возвращает результат.

Возвращаемые

Допустимо иметь более одного оператора возврата в методе. Тем не менее, они не могут быть выполнены оба. После выполнения оператора return больше не выполняется код в этом методе. Программа просто возвращается к коду, который вызвал его.

Вот пример с несколькими операторами возврата:

public String concat(String string1, String string2, boolean reverseOrder){

    if(reverseOrder) {
        return string2 + string1;
    }
    return string1 + string2;
}

Обратите внимание на оператор if внутри метода. Он проверяет, является ли логический параметр reverseOrder истинным или ложным.

Если параметр reverseOrder имеет значение true, то метод возвращает две строки, переданные как параметры, объединенные в обратном порядке (сначала строка2, затем строка1).

Если параметр reverseOrder имеет значение false, то метод пропускает тело оператора if. Затем он продолжается до второго оператора возврата, который возвращает два параметра, соединенных в обычном порядке (строка1, затем строка2).

Модификаторы доступа к методам

Возможно, вы заметили слово public, которое помещено перед всеми примерами объявления методов в этом тексте. Это слово является модификатором доступа для метода. Он определяет, какой код может вызывать этот метод.

Объявления об исключениях

Если внутри метода возникает ошибка, метод может вызвать исключение. Исключения должны быть объявлены в объявлении метода следующим образом(выделено жирным шрифтом):

public String concat(String string1, String string2) throws MyException {

    if(string1 == null) {
        throw new MyException("string1 was null");
    }
    if(string2 == null) {
        throw new MyException("string2 was null");
    }

    return string1 + string2;
}

Этот метод сначала проверяет, является ли один из двух параметров string1 или string2 нулевым. Если они есть, исключение выдается. Когда генерируется исключение, метод также прекращает выполнение. Но вместо возврата туда, откуда был вызван, выполнение возобновляется внутри первого предложения catch() {}, окружающего метод, нацеленного на это исключение.

Методы вызова

Вызов методов в нескольких местах:

public void callSum() {
    int theSum = add(1, 3);
    System.out.print(theSum);
}

public int add(int value1, int value2) {
    return value1 + value2;
}

Обратите внимание, как метод callSum() создает переменную с именем theSum и присваивает ей значение, возвращаемое вызовом метода add(1, 3). После этого он печатает значение.

Методы могут использоваться для разбиения кода на более мелкие, более понятные и повторно используемые сегменты кода, вместо того, чтобы писать свою программу как один большой метод.

Оцените статью