Bevezetés a Java túlterheléséhez

A Java objektum-orientált programozási nyelv, és az OOP alapkoncepcióit követi. A túlterhelés a Java egyik fontos fogalma. A túlterhelés lehetővé teszi a különböző módszerek azonos nevű felhasználását az osztályban, de különböző aláírásokkal. Az aláírás tartalmazza a paraméterek számát, a paraméterek adattípusát és a módszerben átadott paraméterek sorozatát. A Java-ban a módszer és a konstruktorok egyaránt túlterhelhetők. A módszerek túlterhelése fordítási időben történik, és így ismert a fordítási idő polimorfizmusánál. Az osztályban a módszerek túlterhelése a programok olvashatóságának növelése érdekében történik, hogy a programozó bármilyen módszer továbbfejlesztett megvalósítását írhassa a különböző forgatókönyvekhez.

Vegyünk egy forgatókönyvet, amelyben a programozó meg akarja tudni a különféle geometriai alakzatok térfogatát, például a kocka, henger és téglalap alakú prizma. Mivel három közülük eltérő képlettel rendelkezik a kötet meghatározására, és eltérő számú paraméterrel rendelkeznek. A kocka térfogatának csak egy paraméterre lesz szüksége, a hengernek két, a téglalap alakú prizmának pedig három paraméterre van szüksége. De a fő cél az, hogy csak a számok mennyiségét találjuk meg. Tehát különféle mennyiségi módszereket hozhatunk létre a különféle figurák számára, de azonos névvel. Ilyen módon a módszer túlterhelést használják a gyakorlati forgatókönyvekben.

Hogyan működik a túlterhelés Java-ban?

A módszer túlterhelésének működése egy példával magyarázható:

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

Kimenet:

A fenti kód magyarázata: A fenti példában meg kell találnunk 3 geometriai ábra térfogatát, tehát 3 különálló túlterhelt módszert hoztunk létre, ugyanazzal a névvel, mint a „kötet”, de az összes módszernek eltérő számú érve van. Tehát a fő módszernél, amikor az one.volume (10) fut, akkor az egyetlen paraméterrel rendelkező kötet módszerét nevezzük, azaz int volume (int oldal). Hasonlóan a kötet más módszereihez, az argumentumok száma alapján, különféle módszereket hívnak meg és dolgoznak fel.

Ebben a példában a módszerek túlterheltek az argumentumok száma alapján, de túlterhelhetők a paraméterek adattípusa és a paraméterek sorozata alapján, és ezért csak ezek alapján hívhatók meg.

A Java túlterhelésének típusai

Alapvetően a módszer túlterhelésének három módja van a Java-ban:

1. Paraméterek száma

A Java módszereket túlterhelheti a módszerben átadott paraméterek száma. Például, ha az 1 kötet módszer 2 paraméterrel rendelkezik, és egy másik módszer 3 paraméterrel rendelkezik, akkor a túlterhelés alá tartozik a paraméterek száma alapján.

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

Kimenet:

2. A paraméterek adattípusa

A módszerben átadott paraméterek adattípusa nagyon fontos, ezért a metódusok túlterheltnek tekinthetők, ha a 2-nek vagy a metódusoknak ugyanaz a neve, azonos vagy eltérő argumentumszámmal, de a paraméterek különböző adattípusaival a különböző módszereknél.

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

Kimenet:

3. A paraméterek sorrendje

A módszer túlterhelése úgy is elvégezhető, hogy megváltoztatja a 2 vagy több túlterhelt módszer paramétereinek sorrendjét. Például, ha az 1 módszer paraméterei (x karakterlánc, karakter y), és a másik módszer (karakterlánc x, karakterlánc y), de mindkettő azonos nevű, akkor a fenti 2 módszer akkor tekinthető túlterheltnek, ha a paramétereket.

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

Kimenet:

A fenti kód magyarázata: A fenti példában a „részletek” mindkét módszerét túlterhelik a paraméterek sorrendje. Amikor az emp.details ('Rajesh', 'A') állítást nevezzük, akkor az az érvelés sorrendben van (String, char), azaz az érvénytelen részletek (String név, char rank) meghívásra kerülnek és feldolgozásra kerülnek.

A Java túlterhelésének szabályai

Az alábbiakban felsoroljuk a java-túlterhelés szabályait:

  • A módszer túlterhelésének első és legfontosabb szabálya, hogy a módszereknek azonos névvel kell rendelkezniük egyetlen osztályban.
  • Az osztály két vagy több módszerét túlterhelhetjük különböző aláírások alapján, és az aláírás magában foglalja a paraméterek számát, a paraméterek adattípusait, a fentebb ismertetett paraméterek sorozatát.
  • A módszer visszatérési típusa nem része az aláírásnak, így a túlterhelést soha nem lehet elvégezni a visszatérés típusa alapján, és ha megtörténik, ez létrehozza a fordítási idő hibát.

Következtetés

A túlterhelés a Java egyik fontos fogalma, amelyet meg lehet tenni mind a módszerek, mind a konstruktorok esetében. Van néhány szabály a túlterhelésről, amelyeket szem előtt kell tartani, mielőtt a programozásba beillesztenék.

Ajánlott cikkek

Ez egy útmutató a Java túlterheléséhez. Itt tárgyalunk néhány, a túlterhelésről szóló szabályt, amelyeket figyelembe kell venni a Java fontos fogalmainak, a módszerek és a konstruktorok bevezetése előtt. Megnézheti más kapcsolódó cikkeket is, ha többet szeretne megtudni -

  1. Túlterhelés a C ++ kategóriában
  2. Java telepítési eszközök
  3. Öröklődés a Java-ban
  4. Túlterhelés a PHP-ben
  5. Polimorfizmus a Java-ban
  6. Öröklés a PHP-ben

Kategória: