Увод у преоптерећење у Јави

Јава је објектно оријентисан програмски језик и следи основне ООП концепте. Преоптерећење је један од важних концепата на Јави. Преоптерећење омогућава различите методе које имају исти назив у класи, али са различитим потписима. Потпис укључује број параметара, врсту података параметара и редослијед параметара који су пренесени у методи. У Јави, метода и конструктори, обојица могу бити преоптерећени. Преоптерећење метода се врши у време компилације и отуда је познато код полиморфизма у компилацијском времену. Преоптерећење метода у класи се врши како би се повећала читљивост програма тако да програмер може написати појачану примену било које методе за различите сценарије.

Размислите о сценарију у којем програмер жели сазнати волумен различитих геометријских фигура попут коцке, цилиндра и правоугаоне призме. Како њих троје имају различиту формулу за проналажење запремине и имају различит број параметара. Запремина коцке ће требати само један параметар, цилиндар ће имати два, а правоугаона призма ће узети три параметра. Али главна сврха је пронаћи само количину података. На тај начин можемо створити одвојене методе волумена за различите фигуре, али са истим називом. На овај начин, метода преоптерећења користи се у практичним сценаријима.

Како преоптерећење делује на Јави?

Рад преоптерећења метода објашњава се примером:

Шифра:

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 одвојене преоптерећене методе истог назива као 'волуме', али све методе имају различит број аргумената. Дакле, у главној методи, када се покреће оне.волуме (10), тада се позива метода волумена која има један параметар, тј. Волумен инт (инт страна). Слично је и за остале опсежне методе, на основу броја аргумената, различите методе се позивају и обрађују.

У овом примеру су методе преоптерећене на основу броја аргумената, али могу се преоптеретити и на основу података типа параметара и секвенце параметара и стога се позивају само у складу с тим.

Врсте преоптерећења у Јави

У Јави постоје 3 начина преоптерећења метода:

1. Број параметара

Јава методе се могу преоптеретити бројем параметара прослеђених у методи. На пример, ако 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 методе (Стринг к, цхар и), а други је (цхар к, Стринг и), али обе имају исти назив, онда се сматра да су горње 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))
)
)

Излаз:

Објашњење горњег кода: У горњем примеру су обе методе 'детаља' преоптерећене на основу низа ако су параметри. Када се изговор емп.детаилс ('Рајесх', 'А') позове, метода која садржи аргументе у редоследу (Стринг, цхар), односно неважећи детаљи (Име низа, цхар ранк) се позива и обрађује.

Правила за преоптерећење у Јави

Испод су правила која треба имати на уму код преоптерећења Јава-ом:

  • Прво и најважније правило преоптерећења метода је да методи морају имати исти назив у једној класи.
  • Две или више метода у класи могу се преоптеретити на основу различитих потписа и потпис укључује број параметара, типове података параметара, редослед параметара као што је горе објашњено.
  • Врста повратне методе није део потписа, тако да се преоптерећење никада не може извршити на основу врсте повратка и ако се изврши, то ствара грешку у времену компилације.

Закључак

Преоптерећење је један од важних концепата у Јави и може се извести и за методе и за конструкторе. Постоје нека правила преоптерећења која би требало имати на уму пре него што их спроведете у програмирање.

Препоручени чланци

Ово је водич за преоптерећење на Јави. Овде смо расправљали о неким одређеним правилима преоптерећења која би требало размотрити пре примене важних концепата у Јави, метода и конструктора. Можете и да прођете кроз остале сродне чланке да бисте сазнали више -

  1. Преоптерећење у Ц ++
  2. Јава Деплоимент Тоолс
  3. Наслеђивање у Јави
  4. Преоптерећење у ПХП-у
  5. Полиморфизам у Јави
  6. Наслеђивање у ПХП-у

Категорија: