Сигнатура метода java что это

Сигнатура метода java что это

Что такое сигнатура метода?

Что такое сигнатура метода и отличие от спецификация и контракта метода?

Определение. Два компонента объявления метода включают сигнатуру методаимя метода и параметры.

Пример метода, описанного определения выше:

Cигнатура метода в сочетании с типом возвращаемого значения называется контрактом метода.

Спецификация метода может рассматриваться как документация для метода.

Итог:

public void moveTo(int x, int y) throws IOException — сигнатура

public void moveTo(int x, int y) throws IOExceptionконтракт

Method Signature in Java

The method signature in java is defined as the structure of the method that is designed by the programmer. The method signature is the combination of the method name and the parameter list. The method signature depicts the behavior of the method i.e types of values of the method, return type of the method, etc.

Why do we Need a Method Signature in Java?

Let's suppose you want to make two methods of the same name for example getArea() , the First method is used to find the area of the rectangle, and another method of the same name is used to find the area of the square.

How can you define two methods of the same name? The answer is to use the different method signature on the method, we can implement the same name, either by changing the parameter list, their data type or the return type of the method ,and this process is called method overloading when two methods having same name but have a different signature.

The below example is the example of method overloading, two methods having the same name i.e sum but have different signatures i.e parameters arguments .

Let's understand how to implement method signature in java.

Example of a Method Signature in Java

In the below example, we are creating two methods of the same name i.e getArea() using the different method signature . The First method is used to calculate the area of the rectangle, and the second method is used to calculate the area of the square.

Output:

Example 1: Java Method Signature

In java, we can create the method signature of the four types . Let's understand each method one by one. So that we can use the same function name with a different signature

Without return type and no parameter.

In this form, the method doesn't have its return type i.e the return type is void and without a parameter.

The printName() method doesn't have any return type and parameter in the below example.

Output:

Without Return Type and with Parameter.

In this form, the method doesn't have its return type i.e the return type is void but contains some parameters.

The printName() method doesn't have any return type but contains a parameter i.e of String type.

Output:

With return type and with parameter.

In this form, the method doesn't have its return type but contains some parameters.

The printName() method has a return type of String , and also contains a parameter i.e of String type.

Output:

With return type and no parameter

In this form, the method has its return type but without any parameters.

Output:

Example 2: Class with Two Methods with the Same Signature

In java, we cannot implement two methods of the same signature i.e of the same method name , same parameter types , and the same return type . Because the java run time gets confused about which method to be called during the calling of a particular method. The same is depicted in below example.

Let's understand this using an example.

In the below program we are implementing two methods of the same signature. Let's see what will happen when we try to execute our program.

Output:

We will get this error while executing the program.

Learn More

We can learn more about the methods and their characteristics by using this article. Article

19. Java – Методы

Метод в Java – это комплекс выражений, совокупность которых позволяет выполнить определенную операцию. Так, например, при вызове метода System.out.println(), система выполняет ряд команд для выведения сообщения на консоль.

На данном этапе вы освоите технику создания собственных методов с либо без возвращаемых значений, вызова методов с указанием либо без указания параметров, и выделения методов при разработке программы.

Создание метода

Ниже рассмотрен пример, иллюстрирующий синтаксис метода, как в Java создать метод.

Синтаксис

  • public static – модификатор;
  • int – возвращаемый тип;
  • methodName – имя метода;
  • a, b – формальные параметры;
  • int a, int b – перечень параметров.

Определение метода представлено заголовком и телом метода. То же самое мы можем наблюдать в следующем синтаксисе создания метода.

Синтаксис

Приведенный выше синтаксис включает:

  • modifier – определяет тип доступа для метода и возможность его использования.
  • returnType – метод может возвратить значение.
  • nameOfMethod – указывает имя метода. Сигнатура метода включает имя метода и перечень параметров.
  • Parameter List – перечень параметров представлен типом, порядком и количеством параметров метода. Данная опция задается произвольно, в методе может присутствовать нулевой параметр.
  • method body – тело метода определяет метод работы с командами.

Пример

Далее представлен исходный код рассмотренного выше метода, именуемого max(). Данный метод использует два параметра num1 и num2 и возвращает больший из двух.

Вызов метода

Перед использованием метода его необходимо вызвать. Существует два способа для вызова метода в Java, т.е. метод производит возврат значения либо не производит (отсутствует возвращающее значение).

Алгоритм вызова метода достаточно прост. Когда программа производит в Java вызов метода, программное управление передается вызванному методу. Данный вызванный метод затем возвращает управление вызывающему клиенту в двух случаях, если:

  • выполняется оператор возврата;
  • достигнута закрывающая фигурная скобка окончания метода.

Метод возврата типа void производит вызов команды. Рассмотрим пример:

Метод возврата значения может быть проиллюстрирован следующим примером:

Пример ниже демонстрирует способ определения и вызова метода в Java.

Пример

Ключевое слово void

Ключевое слово void в Java позволяет нам создать методы, не производящие возврат значения. В примере, расположенном далее, нами был рассмотрен метод типа void – methodRankPoints. Методы типа void в Java не производят возврат каких-либо значений. Вызов метода типа void выполняется командой, т.е. methodRankPoints(255.7);. Это java-выражение, которое оканчивается точкой с запятой, как показано в примере ниже:

Пример

В итоге будет получен следующий результат:

Передача параметров по значению в Java

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

В Java передача параметров по значению обозначает вызов метода с параметром. За счет этого производится передача значения аргумента параметру.

Пример

Следующая программа демонстрирует пример передачи параметра по значению. Значения аргументов остаются неизменными даже после вызова метода.

Перегрузка методов

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

Рассмотрим пример, который был представлен выше при определении минимальных чисел целочисленного типа. Так допустим, мы хотим определить минимальное число двойного типа. В данном случае будет представлена концепция перегрузки для создания двух и более методов с одинаковым именем, но различными параметрами.

Рассмотренный пример поясняет вышесказанное.

Пример

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

Использование аргументов командной строки

В ходе работы программы вам может понадобиться произвести передачу определенной информации. Это может быть сделано в Java за счет передачи аргументов командной строки в main().

В Java аргумент командной строки представляет информацию, которая напрямую следует за именем программы в командной строке при ее выполнении. Получение доступа к аргументам командной строки в java-программе не представляет сложности. Они хранятся в виде строки в массиве строк, переданном в main().

Пример

Программа ниже отображает все вызванные аргументы командной строки.

Попробуйте выполнить данную программу, как показано далее:

В итоге будет получен следующий результат:

Конструктор в Java

В Java конструктор инициализирует объект при его создании. Его имя аналогично имени класса, а синтаксис сходен с синтаксисом метода. Однако, в отличие от последнего, в конструкторе отсутствует возвращаемое значение.

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

Конструкторы присутствуют во всех классах, независимо от их указания, в виду того, что Java автоматически предоставляет конструктор по умолчанию, который инициализирует все переменные членов класса до нуля. Вместе с этим, после того как вы определите собственный конструктор, конструктор по умолчанию больше не будет задействован.

Пример

В примере ниже рассмотрено использование конструктора класса без параметров.

Для инициализации объектов вам необходимо выполнить вызов конструктора согласно следующему примеру.

Параметризованный конструктор

Чаще всего вам может понадобиться конструктор, который принимает один и более параметров. Добавление параметров к конструктору аналогично их добавлению в метод, следует только внести их в круглые скобки после имени конструктора.

Пример

Далее рассмотрен простой пример использования конструктора с параметром.

С целью инициализации объектов вам понадобится вызвать конструктор согласно следующему примеру.

Получим следующий результат:

Ключевое слово this

Ключевое слово this – используется для ссылки на текущий класс с учетом метода или конструктора экземпляра. Используя this в Java, Вы можете ссылаться на экземпляры класса, такие как конструкторы, переменные и методы.

Примечание: ключевое слово this используется только в составе методов либо конструкторов экземпляра.

Как правило, ключевое слово this в Java используется для:

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

Пример

Далее представлен пример, в котором ключевое слово this используется для доступа к экземплярам класса. Необходимо копировать и вставить данную программу в файл с названием This_Example.java.

В итоге будет получен следующий результат:

Аргументы переменной (var-args)

JDK 1.5 и выше позволяет передавать методу переменное количество аргументов одного типа. Параметр в методе объявляется следующим образом:

При объявлении метода Вы указываете тип, за которым следует многоточие (. ). В методе может быть указан только один параметр переменной длины, и этот параметр должен быть последним параметром. Любые регулярные параметры должны предшествовать ему.

Пример

В итоге будет получен следующий результат:

Метод finalize()

Метод finalize() – метод, который будет вызываться непосредственно перед окончательным уничтожением объекта сборщиком мусора. (финализатором). В Java finalize() может быть использован для обеспечения чистого завершения объекта.

К примеру, мы можете использовать finalize() чтобы удостовериться в том, что открытый файл, принадлежащий данному объекту, был закрыт.

Для добавления финализатора в класс, вам просто следует определить метод finalize() в Java. Среда выполнения Java производит вызов данного метода непосредственно перед обработкой объекта данного класса.

В составе метода finalize(), вы указываете те действия, которые должны быть выполнены перед уничтожением объекта.

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

Здесь ключевое слово protected представляет спецификатор, предотвращающий доступ к finalize() посредством кода, определяемого вне его класса.

Это свидетельствует о том, что вы не можете знать как или даже когда будет производиться выполнение finalize(). К примеру, если ваша программа будет окончена до «сборки мусора», finalize() не будет выполняться.

Ссылка на основную публикацию