Въведение в претоварването в Java

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

Помислете за сценарий, при който програмистът иска да открие обема на различни геометрични фигури като куба, цилиндър и правоъгълна призма. Тъй като три от тях имат различна формула за намиране на обема и имат различен брой параметри. Обемът на куба ще се нуждае само от един параметър, цилиндърът ще вземе два, а правоъгълната призма ще вземе три параметъра. Но основната цел е да се намери само обемът на цифрите. Така че можем да създадем отделни методи за обем за различни фигури, но със същото име. По този начин методът Претоварване се използва в практически сценарии.

Как работи претоварването в Java?

Работата с претоварването на методи се обяснява с пример:

Код:

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));
) )

изход:

Обяснение на горния код: В горния пример трябва да намерим обема от 3 геометрични фигури, така че ние създадохме 3 отделни претоварени метода със същото име като 'том', но всички методи имат различен брой аргументи. Така че в основния метод, когато се изпълнява one.volume (10), тогава се извиква методът на обема, имащ един параметър, т.е. int обем (int страна). Подобно на останалите методи на обем, въз основа на броя на аргументите, се извикват и обработват различни методи.

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

Видове претоварване в Java

По принцип има 3 начина на претоварване на методи в Java:

1. Брой параметри

Java методите могат да бъдат претоварени от броя на приетите параметри в метода. Например, ако 1 методът на обем има 2 параметъра, а друг метод има 3 параметъра, тогава той попада под „Претоварване“ въз основа на броя параметри.

Код:

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));
)
)

изход:

2. Тип на параметрите

Типът данни на параметрите, предавани в метода, има голямо значение и следователно методите могат да се считат за претоварени, ако 2 или методите имат едно и също име със същия или различен брой аргументи, но различни типове данни на параметри в различните методи.

Код:

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));
)
)

изход:

3. Последователност на параметрите

Метод Претоварването може да се извърши и чрез промяна на последователността на параметрите на 2 или повече претоварени методи. Например, ако параметрите на 1 метод са (String x, char y), а другият метод е (char x, String y), но и двата имат същото име, тогава горните 2 метода се считат за претоварени от различна последователност от параметри.

Код:

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))
)
)

изход:

Обяснение на горния код: В горния пример и двата метода на 'подробности' се претоварват въз основа на последователност, ако са параметри. Когато операторът emp.details ('Rajesh', 'A') се извиква, тогава методът, съдържащ аргументите в реда (String, char), т.е. невалидни данни (String name, char rank), се извиква и обработва.

Правила за претоварване в Java

По-долу са правилата, които трябва да се запомнят при претоварване на Java:

  • Първото и основно правило за претоварването на методите е, че методите трябва да имат едно и също име в един клас.
  • Два или повече метода в клас могат да бъдат претоварени на базата на различни подписи, а подписът включва броя на параметрите, типовете данни на параметрите, последователността на параметрите, както е обяснено по-горе.
  • Типът на връщане на метод не е част от подписа, така че претоварването никога не може да се извърши въз основа на типа връщане и ако е направено, това създава грешка във времето на компилиране.

заключение

Претоварването е една от важните концепции в Java и може да се направи както за методи, така и за конструктори. Има някои правила за претоварване, които трябва да се имат предвид, преди да се приложи това в програмирането.

Препоръчителни статии

Това е ръководство за претоварване в Java. Тук обсъждаме някои определени правила за претоварване, които трябва да се вземат предвид преди внедряването на важни концепции в Java, методи и конструктори. Можете също да прегледате и другите ни свързани статии, за да научите повече -

  1. Претоварване в C ++
  2. Инструменти за разполагане на Java
  3. Наследяване в Java
  4. Претоварване в PHP
  5. Полиморфизъм в Java
  6. Наследяване в PHP