Wprowadzenie do przeciążania w Javie

Java jest językiem programowania obiektowego i jest zgodna z podstawowymi pojęciami OOP. Przeładowanie jest jedną z ważnych koncepcji w Javie. Przeładowanie pozwala różnym metodom o tej samej nazwie w klasie, ale z różnymi podpisami. Podpis obejmuje liczbę parametrów, typ danych parametrów i kolejność parametrów przekazywanych w metodzie. W Javie zarówno metoda, jak i konstruktory mogą być przeciążone. Przeciążenie metod odbywa się w czasie kompilacji, a zatem jest znane przy polimorfizmie w czasie kompilacji. Przeciążenie metod w klasie ma na celu zwiększenie czytelności programów, dzięki czemu programiści mogą napisać ulepszoną implementację dowolnej metody dla różnych scenariuszy.

Rozważ scenariusz, w którym programista chce znaleźć objętość różnych figur geometrycznych, takich jak sześcian, walec i prostokątny pryzmat. Ponieważ trzy z nich mają inną formułę znajdowania objętości i mają inną liczbę parametrów. Objętość sześcianu będzie wymagała tylko jednego parametru, cylinder zajmie dwa, a prostokątny pryzmat zajmie trzy parametry. Ale głównym celem jest znalezienie tylko liczby cyfr. Możemy więc stworzyć osobne metody objętości dla różnych liczb, ale o tej samej nazwie. W ten sposób w praktycznych scenariuszach stosuje się przeciążanie metod.

Jak działa przeładowanie w Javie?

Działanie metody Przeciążenie wyjaśniono na przykładzie:

Kod:

class Main(
int volume(int side)
(
return side * side * side;
)
int volume(int length, int breadth, int height)
(
return length*breadth*height;
)
double volume(int radius, int height)
( return 3.14 * (radius * radius)* height / 3;
)
public static void main(String() args)
(
Main oe = new Main();
System.out.println("Volume of Cube " +oe.volume(10));
System.out.println("Volume of Rectangular prism " +oe.volume(10, 12, 30));
System.out.println("Volume of Cone "+oe.volume(5, 10));
) )

Wynik:

Wyjaśnienie powyższego kodu: W powyższym przykładzie musimy znaleźć objętość 3 figur geometrycznych, więc stworzyliśmy 3 osobne przeciążone metody o tej samej nazwie co „wolumen”, ale wszystkie metody mają różną liczbę argumentów. Tak więc w głównej metodzie, gdy uruchamiany jest one.volume (10), wówczas wywoływana jest metoda volume mająca jeden parametr, tj. Int volume (int side). Podobnie w przypadku innych metod objętościowych, na podstawie liczby argumentów, wywoływane i przetwarzane są różne metody.

W tym przykładzie metody są przeciążone na podstawie liczby argumentów, ale mogą być również przeciążone na podstawie typu danych parametrów i sekwencji parametrów, a zatem wywoływane tylko zgodnie z tym.

Rodzaje przeciążenia w Javie

Istnieją zasadniczo 3 sposoby przeciążania metod w Javie:

1. Liczba parametrów

Metody Java mogą być przeciążone liczbą parametrów przekazanych w metodzie. Na przykład, jeśli 1 metoda objętości ma 2 parametry, a inna metoda ma 3 parametry, wówczas przechodzi w tryb Przeładowanie na podstawie liczby parametrów.

Kod:

class Multiplication
(
int mult(int a, int b) // method mult having 2 parameters
(
return a*b;
)
//Method Overloading on number of parameters
int mult(int a, int b, int c) // method mult having 3 parameters
(
return a*b*c;
)
)
class Main
(
public static void main(String() args)
(
Multiplication M = new Multiplication();
System.out.println(M.mult(10, 9));
System.out.println(M.mult(10, 9, 8));
)
)

Wynik:

2. Typ danych parametrów

Typ danych parametrów przekazywanych w metodzie ma duże znaczenie, a zatem metody można uznać za przeciążone, jeśli 2 lub metody mają tę samą nazwę o takiej samej lub różnej liczbie argumentów, ale różnych typach danych parametrów w różnych metodach.

Kod:

class Multiplication
(
int mult(int a, int b) // method mult having 2 parameters
(
return a*b;
)
//Method Overloading on datatype of parameters
double mult(double a, double b) // method mult overloaded
(
return a*b;
)
)
class Main
(
public static void main(String() args)
(
Multiplication M = new Multiplication();
System.out.println(M.mult(10, 9));
System.out.println(M.mult(10.5, 9.8));
)
)

Wynik:

3. Sekwencja parametrów

Przeciążenie metody można również wykonać, zmieniając sekwencję parametrów 2 lub więcej przeciążonych metod. Na przykład, jeśli parametrami 1 metody są (Ciąg x, char y), a druga metoda to (char x, Ciąg y), ale oba mają tę samą nazwę, wówczas powyższe 2 metody są uważane za przeciążone inną sekwencją parametry

Kod:

class Employee
(
void details(String name, char rank) // method details having 2 parameters
(
System.out.println("Employee name is "+name);
System.out.println("Employee ranking is "+rank);
) //Method Overloading on sequence of parameters
void details(char rank, String name) // method details overloaded
(
System.out.println("Employee name is "+name);
System.out.println("Employee ranking is "+rank);
)
)
class Main
(
public static void main(String() args)
( Employee emp = new Employee();
emp.details("Rajesh", 'A'); // calls the first method (details(String, char))
emp.details("Ram", 'B'); // calls the second method (details(char, String))
)
)

Wynik:

Objaśnienie powyższego kodu: W powyższym przykładzie obie metody „szczegółów” są przeciążone na podstawie sekwencji, jeśli parametry. Gdy wywoływana jest instrukcja emp.details („Rajesh”, „A”), wówczas wywoływana i przetwarzana jest metoda mająca argumenty w kolejności (String, char), tj. Nieważne szczegóły (nazwa String, char rank).

Zasady przeciążania w Javie

Poniżej przedstawiono zasady, które należy pamiętać w przypadku przeciążenia Java:

  • Pierwszą i najważniejszą zasadą przeciążania metod jest to, że metody muszą mieć tę samą nazwę w jednej klasie.
  • Dwie lub więcej metod w klasie może być przeciążonych na podstawie różnych podpisów, a podpis obejmuje liczbę parametrów, typy danych parametrów, sekwencję parametrów, jak wyjaśniono powyżej.
  • Typ zwracany przez metodę nie jest częścią podpisu, więc przeciążenie nigdy nie może być wykonane na podstawie typu zwracanego, a jeśli zostanie wykonane, spowoduje to błąd czasu kompilacji.

Wniosek

Przeciążenie jest jedną z ważnych koncepcji w Javie i można to zrobić zarówno w przypadku metod, jak i konstruktorów. Istnieją pewne zasady przeciążania, o których należy pamiętać przed wdrożeniem tego w programowaniu.

Polecane artykuły

Jest to przewodnik po przeciążaniu w Javie. W tym rozdziale omawiamy niektóre zasady przeciążania, które należy rozważyć przed wdrożeniem ważnych pojęć w Javie, metodach i konstruktorach. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej -

  1. Przeciążenie w C ++
  2. Narzędzia wdrażania Java
  3. Dziedziczenie w Javie
  4. Przeciążenie w PHP
  5. Polimorfizm w Javie
  6. Dziedziczenie w PHP