Java metodes pārslodze (ar piemēriem)

Šajā rakstā jūs uzzināsit par metožu pārslodzi un to, kā ar piemēru palīdzību to sasniegt Java.

Java divās vai vairākās metodēs var būt viens un tas pats nosaukums, ja tās atšķiras pēc parametriem (atšķirīgs parametru skaits, dažāda veida parametri vai abi). Šīs metodes sauc par pārslogotām metodēm, un šo funkciju sauc par metožu pārslodzi. Piemēram:

 void func () (…) void func (int a) (…) float func (dubultā a) (…) float func (int a, float b) (…)

Šeit func()metode ir pārslogota. Šīm metodēm ir tāds pats nosaukums, taču tās pieņem dažādus argumentus.

Piezīme . Iepriekš minēto metožu atgriešanas veidi nav vienādi. Tas ir tāpēc, ka metodes pārslodze nav saistīta ar atgriešanās tipiem. Pārslogotām metodēm var būt vienādi vai atšķirīgi atgriešanās veidi, taču tiem ir jāatšķiras pēc parametriem.

Kāpēc metode tiek pārslogota?

Pieņemsim, ka jums ir jāpieskaita norādītie skaitļi, taču argumentu var būt jebkurš (vienkāršības labad pieņemsim, vai nu 2, vai 3 argumentus).

Lai veiktu uzdevumu, varat izveidot divas metodes sum2num(int, int)un sum3num(int, int, int)attiecīgi divus un trīs parametrus. Tomēr citi programmētāji, kā arī jūs nākotnē varat sajaukt, jo abu metožu uzvedība ir vienāda, taču tās atšķiras pēc nosaukuma.

Labāks veids, kā izpildīt šo uzdevumu, ir metožu pārslodze. Atkarībā no pieņemtā argumenta tiek izsaukta viena no pārslogotajām metodēm. Tas palīdz uzlabot programmas lasāmību.

Kā veikt metodes pārslodzi Java?

Šeit ir dažādi veidi, kā veikt metodes pārslodzi:

1. Pārslodze, mainot argumentu skaitu

 class MethodOverloading ( private static void display(int a)( System.out.println("Arguments: " + a); ) private static void display(int a, int b)( System.out.println("Arguments: " + a + " and " + b); ) public static void main(String() args) ( display(1); display(1, 4); ) )

Izeja :

 Argumenti: 1 Argumenti: 1 un 4

2. Mainot parametru datu tipu

 class MethodOverloading ( // this method accepts int private static void display(int a)( System.out.println("Got Integer data."); ) // this method accepts String object private static void display(String a)( System.out.println("Got String object."); ) public static void main(String() args) ( display(1); display("Hello"); ) ) 

Izeja :

Got Integer dati. Got String objekts.

Šeit abas pārslogotās metodes pieņem vienu argumentu. Tomēr viens pieņem tipa argumentu, intbet otrs - Stringobjektu.

Apskatīsim reālās pasaules piemēru:

 class HelperService ( private String formatNumber(int value) ( return String.format("%d", value); ) private String formatNumber(double value) ( return String.format("%.3f", value); ) private String formatNumber(String value) ( return String.format("%.2f", Double.parseDouble(value)); ) public static void main(String() args) ( HelperService hs = new HelperService(); System.out.println(hs.formatNumber(500)); System.out.println(hs.formatNumber(89.9934)); System.out.println(hs.formatNumber("550")); ) )

Palaidot programmu, izeja būs:

 500 89,993 550,00

Piezīme : Java valodā konstruktorus var pārslogot arī līdzīgi kā metodes.

Ieteicamā literatūra: Java konstruktora pārslodze

Svarīgi punkti

  • Divām vai vairākām metodēm vienā klasē var būt viens nosaukums, ja tās pieņem dažādus argumentus. Šī funkcija ir pazīstama kā metodes pārslodze.
  • Metodes pārslodze tiek panākta ar:
    • mainot argumentu skaitu.
    • vai mainot argumentu datu tipu.
  • Tas nav metodes pārslodze, ja mēs mainām tikai metožu atgriešanas veidu. Parametru skaitam jābūt atšķirīgam.

Interesanti raksti...