Úvod do přetížení v Javě

Java je objektově orientovaný programovací jazyk a řídí se základními pojmy OOP. Přetížení je jedním z důležitých konceptů v Javě. Přetížení umožňuje různé metody se stejným názvem ve třídě, ale s různými podpisy. Podpis zahrnuje počet parametrů, datový typ parametrů a posloupnost parametrů předaných v metodě. V Javě může být metoda i konstruktéři přetíženi. Přetížení metod je prováděno v době kompilace, a proto je známo v polymorfismu kompilace. Přetěžování metod ve třídě se provádí za účelem zvýšení čitelnosti programů tak, aby programátor mohl napsat vylepšenou implementaci jakékoli metody pro různé scénáře.

Zvažte scénář, ve kterém chce programátor zjistit objem různých geometrických útvarů, jako je krychle, válec a obdélníkový hranol. Protože tři z nich mají jiný vzorec pro zjištění objemu a mají jiný počet parametrů. Objem krychle bude vyžadovat pouze jeden parametr, válec bude mít dva a obdélníkový hranol bude mít tři parametry. Hlavním účelem je však najít pouze objem čísel. Můžeme tedy vytvořit samostatné metody svazku pro různé postavy, ale se stejným názvem. Tímto způsobem se metoda Overloading používá v praktických scénářích.

Jak přetížení funguje v Javě?

Práce s přetížením metody je vysvětlena na příkladu:

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ýstup:

Vysvětlení výše uvedeného kódu: Ve výše uvedeném příkladu musíme najít objem 3 geometrických obrazců, takže jsme vytvořili 3 oddělené přetížené metody se stejným názvem jako „objem“, ale všechny metody mají různé počty argumentů. Takže v hlavní metodě, když je spuštěn jeden objem (10), je volána metoda objemu mající jediný parametr, tj. Int objem (int strana). Podobně pro ostatní metody svazku se na základě počtu argumentů vyvolávají a zpracovávají různé metody.

V tomto příkladu jsou metody přetíženy na základě počtu argumentů, ale mohou být také přetíženy na základě datového typu parametrů a posloupnosti parametrů, a proto se podle toho nazývají pouze.

Typy přetížení v Javě

V Java existují v zásadě 3 způsoby přetížení metod:

1. Počet parametrů

Metody Java mohou být přetíženy počtem parametrů předaných v metodě. Například, pokud má metoda 1 svazku 2 parametry a jiná metoda má 3 parametry, pak spadá do položky Přetížení na základě počtu parametrů.

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ýstup:

2. Datový typ parametrů

Datový typ parametrů předávaných v metodě hodně záleží, a proto lze metody považovat za přetížené, pokud 2 nebo metody mají stejný název, který má stejný nebo odlišný počet argumentů, ale různé datové typy parametrů v různých metodách.

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ýstup:

3. Posloupnost parametrů

Přetížení metody lze také provést změnou posloupnosti parametrů 2 nebo více přetížených metod. Například, pokud parametry metody 1 jsou (String x, char y) a druhá metoda je (char x, String y), ale obě mají stejný název, pak se výše uvedené metody považují za přetížené jinou sekvencí parametry.

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ýstup:

Vysvětlení výše uvedeného kódu: Ve výše uvedeném příkladu jsou obě metody „detailů“ přetíženy na základě posloupnosti parametrů. Když se zavolá příkaz emp.details („Rajesh“, „A“), vyvolá se a zpracuje metoda mající argumenty v pořadí (String, char), tj. Neplatné podrobnosti (String name, char rank).

Pravidla pro přetížení v Javě

Níže jsou uvedena pravidla, která byste si měli pamatovat při přetěžování javy:

  • Prvním a nejdůležitějším pravidlem přetížení metody je, že metody musí mít stejné jméno v jedné třídě.
  • Dvě nebo více metod ve třídě mohou být přetíženy na základě různých podpisů a podpis zahrnuje počet parametrů, datové typy parametrů, posloupnost parametrů, jak je vysvětleno výše.
  • Návratový typ metody není součástí podpisu, takže přetížení nemůže být nikdy provedeno na základě typu návratu a pokud se tak stane, vytvoří se chyba kompilace.

Závěr

Přetížení je jedním z důležitých konceptů v Javě a lze jej provést jak pro metody, tak pro konstruktéry. Existují některá pravidla přetížení, která byste měli mít na paměti před provedením v programování.

Doporučené články

Toto je průvodce přetížením v Javě. Zde diskutujeme některá určitá pravidla pro přetížení, která by měla být zvážena před implementací důležitých konceptů v jazyce Java, metod a konstruktérů. Další informace naleznete také v dalších souvisejících článcích -

  1. Přetížení v C ++
  2. Java Deployment Tools
  3. Dědičnost v Javě
  4. Přetížení v PHP
  5. Polymorfismus v Javě
  6. Dědičnost v PHP

Kategorie: