Introduksjon til overbelastning i Java

Java er et objektorientert programmeringsspråk og det følger grunnleggende OOP-konsepter. Overbelastning er et av de viktige konseptene i Java. Overbelastning tillater forskjellige metoder som har samme navn i en klasse, men med forskjellige underskrifter. Signatur inkluderer antall parametere, datatypen av parametere og sekvensen av parametere som er gitt i metoden. I Java, metoden og konstruktørene, kan begge være overbelastet. Overbelastning av metoder utføres på kompileringstidspunktet, og det er derfor kjent ved kompileringstidspolymorfisme. Overbelastning av metoder i en klasse gjøres for å øke lesbarheten til programmer, slik at programmereren kan skrive en forbedret implementering av en hvilken som helst metode for forskjellige scenarier.

Tenk på et scenario der programmereren ønsker å finne ut volumet til forskjellige geometriske figurer som kuben, sylinderen og det rektangulære prisme. Som tre av dem har en annen formel for å finne volumet og har et annet antall parametere. Kubens volum trenger bare en parameter, sylinderen vil ta to og rektangulært prisme vil ta tre parametere. Men hovedhensikten er bare å finne mengden av figurer. Så vi kan lage separate volummetoder for forskjellige figurer, men med samme navn. På denne måten brukes metodeoverbelastning i praktiske scenarier.

Hvordan fungerer overbelastning i Java?

Working of Method Overloading blir forklart med et eksempel:

Kode:

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

Produksjon:

Forklaring av koden ovenfor: I eksemplet ovenfor må vi finne volumet til 3 geometriske figurer, så vi har laget tre separate overbelastede metoder med samme navn som 'volum', men alle metodene har forskjellige antall argumenter. Så i hovedmetoden, når en.volum (10) kjøres, kalles volummetoden med en enkelt parameter, dvs. int-volum (int-side). Tilsvarende for de andre volummetodene, på bakgrunn av antall argumenter, kalles og behandles forskjellige metoder.

I dette eksemplet blir metodene overbelastet på grunnlag av antall argumenter, men de kan også overbelastes på grunnlag av datatypen for parametere og sekvensen av parametere, og dermed kalt i samsvar med det.

Typer overbelastning i Java

Det er i utgangspunktet tre måter å overbelaste metoden i Java:

1. Antall parametere

Java-metoder kan overbelastes med antall parametere som er passert i metoden. Hvis for eksempel volummetoden har 2 parametere og en annen metode har 3 parametere, kommer den under Overbelastning på grunnlag av antall parametere.

Kode:

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

Produksjon:

2. Datatype av parametere

Datatypen av parametere som er gitt i metoden betyr mye, og metoder kan derfor betraktes som overbelastet hvis 2 eller metoder har samme navn som har samme eller forskjellige antall argumenter, men forskjellige datatyper parametere i de forskjellige metodene.

Kode:

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

Produksjon:

3. Sekvens av parametere

Metode Overbelastning kan også gjøres ved å endre sekvensen med parametere for 2 eller flere overbelastede metoder. For eksempel, hvis parametrene til 1 metode er (streng x, karakter y) og den andre metoden er (char x, streng y), men begge har samme navn, anses de to metodene ovenfor for å være overbelastet av en annen sekvens på parametre.

Kode:

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

Produksjon:

Forklaring av koden ovenfor: I eksemplet over er begge metodene for 'detaljer' overbelastet på grunnlag av sekvens hvis parametere. Når utsagnet emp.details ('Rajesh', 'A') kalles, kalles og behandles metoden som har argumentene i rekkefølgen (String, char), dvs. ugyldige detaljer (String name, char rank).

Regler for overbelastning i Java

Nedenfor er reglene som bør huskes i Java-overbelastning:

  • Den første og fremste regelen med overbelastning av metoder er at Metoder må ha samme navn i en enkelt klasse.
  • To eller flere metoder i en klasse kan overbelastes på grunnlag av forskjellige signaturer og signatur inkluderer antall parametere, datatyper av parametere, sekvensen av parametere som forklart ovenfor.
  • Returtypen til en metode er ikke en del av signaturen, så overbelastning kan aldri gjøres på grunnlag av returtypen, og hvis det er gjort, skaper dette kompileringstidsfeilen.

Konklusjon

Overbelastning er et av de viktige konseptene i Java og kan gjøres for både metoder og konstruktører. Det er noen regler for overbelastning som bør huskes før du implementerer det i programmering.

Anbefalte artikler

Dette er en guide til overbelastning i Java. Her diskuterer vi noen visse regler for overbelastning som bør vurderes før implementering av viktige konsepter i Java, metoder og konstruktører. Du kan også gå gjennom andre relaterte artikler for å lære mer -

  1. Overbelastning i C ++
  2. Java-distribusjonsverktøy
  3. Arv i Java
  4. Overbelastning i PHP
  5. Polymorfisme i Java
  6. Arv i PHP