Úvod do preťaženia v Jave

Java je objektovo orientovaný programovací jazyk a riadi sa základnými konceptmi OOP. Preťaženie je jedným z dôležitých konceptov v Jave. Preťaženie umožňuje rôzne metódy s rovnakým menom v triede, ale s rôznymi podpismi. Podpis zahŕňa počet parametrov, typ údajov parametrov a postupnosť parametrov odovzdaných v metóde. V Java, spôsob a konštruktori, môžu byť preťažené. Preťaženie metód sa vykonáva v čase kompilácie, a preto je známe v polymorfizme v čase kompilácie. Preťaženie metód v triede sa vykonáva na zvýšenie čitateľnosti programov tak, aby programátor mohol napísať vylepšenú implementáciu akejkoľvek metódy pre rôzne scenáre.

Zoberme si scenár, v ktorom chce programátor zistiť objem rôznych geometrických útvarov, ako je kocka, valec a obdĺžnikový hranol. Pretože tri z nich majú iný vzorec na zistenie objemu a majú odlišný počet parametrov. Objem kocky bude vyžadovať iba jeden parameter, valec bude mať dva a obdĺžnikový hranol bude mať tri parametre. Hlavným účelom je však nájsť iba objem čísel. Môžeme teda vytvoriť samostatné objemové metódy pre rôzne postavy, ale s rovnakým názvom. Týmto spôsobom sa metóda Overloading používa v praktických scenároch.

Ako funguje preťaženie v jazyku Java?

Fungovanie metódy Preťaženie je vysvetlené na príklade:

kód:

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

Výkon:

Vysvetlenie vyššie uvedeného kódu: Vo vyššie uvedenom príklade musíme nájsť objem 3 geometrických útvarov, aby sme vytvorili 3 samostatné preťažené metódy s rovnakým názvom ako „objem“, ale všetky metódy majú rôzne počty argumentov. Takže v hlavnej metóde, keď je spustený jeden objem (10), potom sa volá metóda objemu, ktorá má jeden parameter, tj int objem (int strana). Podobne pre ostatné metódy zväzku sa na základe počtu argumentov volajú a spracúvajú rôzne metódy.

V tomto príklade sú metódy preťažené na základe počtu argumentov, ale môžu byť tiež preťažené na základe dátového typu parametrov a postupnosti parametrov, a preto sa podľa toho volajú iba.

Typy preťaženia v Jave

V Java existujú v podstate 3 spôsoby preťaženia metód:

1. Počet parametrov

Metódy Java môžu byť preťažené počtom parametrov odovzdaných v metóde. Napríklad, ak má metóda 1 zväzku 2 parametre a iná metóda má 3 parametre, potom spadá pod Preťaženie na základe počtu parametrov.

kód:

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

Výkon:

2. Údajový typ parametrov

Údajový typ parametrov odovzdaných v metóde je veľmi dôležitý, a preto sa metódy môžu považovať za preťažené, ak 2 alebo metódy majú rovnaký názov, ktorý má rovnaký alebo rôzny počet argumentov, ale rôzne dátové typy parametrov v rôznych metódach.

kód:

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

Výkon:

3. Poradie parametrov

Preťaženie metódy sa môže vykonať aj zmenou sledu parametrov 2 alebo viacerých preťažených metód. Napríklad, ak sú parametre metódy 1 (String x, char y) a druhá metóda je (char x, String y), ale obe majú rovnaký názov, potom sa vyššie uvedené metódy považujú za preťažené inou sekvenciou parametre.

kód:

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

Výkon:

Vysvetlenie vyššie uvedeného kódu: Vo vyššie uvedenom príklade sú obe metódy „detailov“ preťažené na základe postupnosti parametrov. Keď sa volá príkaz emp.details („Rajesh“, „A“), vyvolá sa a spracuje sa metóda s argumentmi v poradí (String, char), tj neplatné podrobnosti (String name, char rank).

Pravidlá preťaženia v Jave

Nižšie sú uvedené pravidlá, ktoré treba mať na pamäti pri preťažení Java:

  • Prvým a najdôležitejším pravidlom preťaženia metód je, že metódy musia mať rovnaké meno v jednej triede.
  • Dve alebo viac metód v triede môžu byť preťažené na základe rôznych podpisov a podpis zahŕňa počet parametrov, dátové typy parametrov, postupnosť parametrov, ako je vysvetlené vyššie.
  • Návratový typ metódy nie je súčasťou podpisu, takže preťaženie sa nikdy nemôže vykonať na základe návratového typu a ak sa tak stane, vytvorí sa chyba kompilácie.

záver

Preťaženie je jedným z dôležitých konceptov v jazyku Java a dá sa vykonať pre metódy aj pre konštruktorov. Existuje niekoľko pravidiel preťaženia, na ktoré by ste mali pamätať pred ich implementáciou do programovania.

Odporúčané články

Toto je sprievodca preťažením v Jave. Tu diskutujeme niektoré určité pravidlá preťaženia, ktoré by sa mali zvážiť pred implementáciou dôležitých konceptov v Java, metódach a konštruktoroch. Viac informácií nájdete aj v ďalších súvisiacich článkoch -

  1. Preťaženie v C ++
  2. Java Deployment Tools
  3. Dedičnosť v jazyku Java
  4. Preťaženie v PHP
  5. Polymorfizmus v Jave
  6. Dedičnosť v PHP

Kategórie: