I Java-programmering hänvisar en metodsignatur till den unika identifieraren för en metod. Den består av metodnamnet och dess parameterlista. Signaturen hjälper till att skilja en metod från en annan och låter Java-kompilatorn matcha metodanrop med deras motsvarande definitioner. Metodsignaturen innehåller följande komponenter:
Metodnamn: | Det är namnet som ges till metoden, som bör vara en giltig Java-identifierare och följer namnkonventionerna. Metodnamnet ska vara beskrivande och återspegla den funktionalitet den utför.
Parameterlista: | Den anger parametrarna eller argumenten som en metod förväntar sig att ta emot när den anropas. Varje parameter i listan består av parametertypen och dess namn. Flera parametrar separeras med kommatecken. Om en metod inte kräver några parametrar används en tom parameterlista. Till exempel:
public void methodName() {}
Om en metod har parametrar inkluderar signaturen parametertyperna och namnen:
public void methodName(int param1, String param2) {}
java sortera en lista
Returtyp: | Den definierar datatypen för värdet som metoden returnerar. Om en metod inte returnerar något värde anges returtypen som ogiltig. Om det returnerar ett värde, bör returtypen matcha datatypen för det returnerade värdet. Till exempel:
public int methodName() {}
Om en metod returnerar en array eller ett objekt, representerar returtypen arraytypen eller klassen för det returnerade objektet. Kombinationen av metodnamnet och parameterlistan identifierar unikt en metod inom en klass. Java stöder metodöverbelastning, vilket innebär att du kan definiera flera metoder med samma namn men olika parameterlistor. Överbelastade metoder har olika signaturer, vilket gör att kompilatorn kan bestämma lämplig metod att köra baserat på de angivna argumenten. Det är viktigt att notera att metodsignaturen inte inkluderar metodens åtkomstmodifierare (såsom offentlig, privat eller skyddad) eller andra modifierare (såsom statisk eller final). Dessa modifierare anger metodens synlighet och beteende men anses inte vara en del av signaturen.
Åtkomstmodifierare: | Även om det inte anses vara en del av metodsignaturen, avgör åtkomstmodifierare som offentlig, privat eller skyddad metodens synlighet. De anger varifrån metoden kan nås. Till exempel kan en offentlig metod nås från vilken klass som helst, medan en privat metod endast kan nås inom samma klass.
Modifierare: | Förutom åtkomstmodifierare kan metoder ha andra modifierare som statisk, slutlig, abstrakt eller synkroniserad, som definierar olika beteenden och begränsningar för metoden. Dessa modifierare påverkar inte heller metodsignaturen.
Undantag: | Om en metod ger ett eller flera undantag är de en del av metodsignaturen. Undantag deklareras i metodsignaturen med nyckelordet throws, följt av listan med undantagstyper. Detta indikerar att metoden potentiellt kan kasta dessa undantag under dess exekvering. Till exempel:
public void methodName() throws IOException, IllegalArgumentException {}
Metodöverbelastning: | Java stöder metodöverbelastning, vilket gör att du kan definiera flera metoder med samma namn men olika parameterlistor. Överbelastade metoder har unika signaturer baserat på antalet, typen och ordningen för deras parametrar. Enbart returtypen räcker inte för att särskilja överbelastade metoder. Till exempel:
public void methodName(int param1) {} public void methodName(int param1, int param2) {} public void methodName(String param1) {}
Returtyp: | Returtypen är inte en del av metodsignaturen när man överväger metodöverbelastning. Men om två metoder har samma namn och parameterlista men skiljer sig i returtyp kommer det att resultera i ett kompileringsfel. Java tillåter inte metodöverbelastning baserat enbart på returtypen.
Vararg: | Java stöder argument med variabel längd, även känd som varargs, i metodparametrar. En varargs-parameter låter dig skicka ett variabelt antal argument av samma typ till en metod. Varargs-parametern betecknas med en ellips (...) efter parametertypen. Till exempel:
public void methodName(int... numbers) {}
Med varargs kan vi anropa metoden med valfritt antal int-argument, inklusive noll.
Att förstå metodsignaturer är viktigt när man arbetar med metodanrop, implementerar gränssnitt, utökar klasser eller använder reflektion. Det säkerställer att rätt metod anropas och ger ett konsekvent och entydigt sätt att identifiera metoder i Java-program.