Претоварване на Java метод (с примери)

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

В Java два или повече метода могат да имат едно и също име, ако се различават по параметри (различен брой параметри, различни видове параметри или и двата). Тези методи се наричат ​​претоварени методи и тази функция се нарича претоварване на методите. Например:

 void func () (…) void func (int a) (…) float func (double a) (…) float func (int a, float b) (…)

Тук func()методът е претоварен. Тези методи имат едно и също име, но приемат различни аргументи.

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

Защо методът е претоварен?

Да предположим, че трябва да извършите добавянето на дадени числа, но може да има произволен брой аргументи (да кажем или 2, или 3 аргумента за простота).

За да изпълните задачата, можете да създадете два метода sum2num(int, int)и съответно sum3num(int, int, int)за два и три параметъра. Въпреки това, други програмисти, както и вие в бъдеще може да се объркат, тъй като поведението на двата метода е еднакво, но те се различават по име.

По-добрият начин за изпълнение на тази задача е чрез претоварване на методи. И в зависимост от предадения аргумент се извиква един от претоварените методи. Това помага да се увеличи четливостта на програмата.

Как да извърша претоварване на метод в Java?

Ето различни начини за извършване на претоварване на метода:

1. Претоварване чрез промяна на броя на аргументите

 class MethodOverloading ( private static void display(int a)( System.out.println("Arguments: " + a); ) private static void display(int a, int b)( System.out.println("Arguments: " + a + " and " + b); ) public static void main(String() args) ( display(1); display(1, 4); ) )

Изход :

 Аргументи: 1 Аргументи: 1 и 4

2. Чрез промяна на типа данни за параметри

 class MethodOverloading ( // this method accepts int private static void display(int a)( System.out.println("Got Integer data."); ) // this method accepts String object private static void display(String a)( System.out.println("Got String object."); ) public static void main(String() args) ( display(1); display("Hello"); ) ) 

Изход :

Получих данни за цяло число. Получих обект String.

Тук и двата претоварени метода приемат един аргумент. Обаче единият приема аргумента от тип, intдокато другият приема Stringобект.

Нека разгледаме пример от реалния свят:

 class HelperService ( private String formatNumber(int value) ( return String.format("%d", value); ) private String formatNumber(double value) ( return String.format("%.3f", value); ) private String formatNumber(String value) ( return String.format("%.2f", Double.parseDouble(value)); ) public static void main(String() args) ( HelperService hs = new HelperService(); System.out.println(hs.formatNumber(500)); System.out.println(hs.formatNumber(89.9934)); System.out.println(hs.formatNumber("550")); ) )

Когато стартирате програмата, изходът ще бъде:

 500 89,993 550,00

Забележка : В Java можете също да претоварвате конструктори по подобен начин като методите.

Препоръчително четене: Претоварване на Java Constructor

Важни точки

  • Два или повече метода могат да имат едно и също име в един и същи клас, ако приемат различни аргументи. Тази функция е известна като претоварване на метода.
  • Претоварването на метода се постига чрез:
    • промяна на броя на аргументите.
    • или промяна на типа данни на аргументи.
  • Това не е претоварване на метода, ако променяме само типа връщане на методите. Трябва да има разлики в броя на параметрите.

Интересни статии...