Prednosti in slabosti metode preobremenitve v Javi

click fraud protection

Preobremenjene metode so metode v istem razredu, ki imajo isto ime, vendar sprejemajo različne vrste spremenljivk kot argumente. Razred lahko na primer vsebuje dve različni metodi "add": eno, ki sprejme dve dvojni vrednosti, "add (double a, double b)" in eno, ki sprejme dve celoštevilske vrednosti, "dodaj (int a, int b)." Računalnik se samodejno odloči, katero metodo bo poklical med izvajanjem na podlagi vrst spremenljivk, ki se posredujejo metoda.

Fleksibilnost

Preobremenjene metode omogočajo programerjem fleksibilnost, da pokličejo podobno metodo za različne vrste podatkov. Če na primer delate na matematičnem programu, bi lahko s preobremenitvijo ustvarili več razredov "pomnožite", vsak od njih pomnoži različno število vrste argumenta: najpreprostejši "pomnoži (int a, int b)" pomnoži dva cela števila; bolj zapletena metoda "pomnoži (double a, int b, int c)" pomnoži eno dvojno z dvema celima številoma - potem bi lahko pokličite "multiply" za katero koli kombinacijo spremenljivk, za katero ste ustvarili preobremenjeno metodo, in dobite ustrezen rezultat.

Video dneva

Konstruktorji

Preobremenitev se uporablja tudi pri konstruktorjih za ustvarjanje novih objektov z različnimi količinami podatkov. Na primer, s preobremenitvijo lahko ustvarite tri različne konstruktorje za objekt "House" s hišno številko, imenom ulice in barvnimi spremenljivkami. Najpreprostejši konstruktor "House()" ne sprejema argumentov in ustvari hišo s privzetimi ali praznimi spremenljivkami. Bolj zapleten konstruktor, "House (int houseNumber, String streetName)" ustvari hišo z določeno hišno številko in imenom ulice, vendar s privzeto ali prazno barvo. Najbolj zapleten konstruktor, "House (int houseNumber, String streetName, String color)" ustvari hišo z vsemi navedenimi informacijami, pri čemer nič ne pusti kot privzeto. Nato lahko ustvarite hišni objekt na podlagi trenutno razpoložljivih informacij, pri čemer nedostopne informacije pustite prazne ali privzeto.

Dvoumne reference

Preobremenjene metode morajo uporabljati različna števila ali vrste argumentov, da se izognejo dvoumnosti. Če ustvarite dve metodi v istem razredu, ki imata isto ime in sprejmete dve celi števili kot argumenta, bo Prevajalnik Java ne bo mogel razlikovati med obema, tudi če imajo vhodne spremenljivke različna imena. Na primer, metoda "add (int a, int b)" ne more obstajati v istem razredu kot metoda "add (int c, int d)."

Vrste vračanja

Za vsako preobremenjeno metodo morate definirati tip vrnitve. Metode imajo lahko različne vrste vrnitev – na primer, "add (int a, int b)" lahko vrne celo število, medtem ko "add (double a, double b)" vrne dvojno. Vendar Java ne more razlikovati med dvema različnima metodama glede na njihov tip vrnitve. Zato "int multiply (double a, double b)" ne more obstajati v istem razredu kot "double multiply (double a, double b)".