Ihre Signatur (oder Method Signature ) definiert in der Programmierung der formalen Schnittstelle einer Funktion oder Prozeur . Bitte beachten Sie die Namen der Funktion und klicken Sie dann auf die Zodiac Compatible Parameter Datentypen . Der Typ des Rückgabewerts Hört Starke Strukturen Programmieren Sprechen Ebenfalls Zur Unterschrift. [1] [2]
Auch de Menines der Operatoren eines Abstracts Datatyps wird Signatur erkannt. [3]
Unter Signaturvererbung definiert in der Objektorientierten Programmierung eine Methode der Unterklasse.
Rückgabetyp
In Pascal, C und Abkömmlingen, und ähnlichen Sprachen, Welche bei Überladungen des Rückgabetyp nicht berücksichtigen, Können nicht Unterschieden Werden, Welche Methode im spezifischen Anwendungsfall Benutzt Werden soll.
beispiel:
... // Deklaration float teile ( int Dividend , int divisor ); // die Signatur ist hier: teile (int, int) doppelte Teile ( int a , int b ); // nicht erlaubt, Signatur ist dieselbe wie oben: teile (int, int) ...
Beide Methoden bzw. Die Funktion oben hüte die gleiche Signatur.
... // Deklaration Boolesch ist negativ ( Float Zahl ); // die Signatur ist negativ (float) Boolean ist negativ ( doppelte Zahl ); // in Ordnung, Signatur ist anders: isNegativ (double) ...
Jetzt kann nicht mehr geändert werden, welke Funktionale Teile (int, int) im Konkreten Anwendungsfall werden verwendet:
... // Die Obigen Die hier verwendeten Funktionen waren: boolean b = isNegativ ( teile ( x , y ) ); // float teile (..) oder double teile (..)? ...
Im Gegensatz dazu kann die Möglichkeit gegeben sein, im Ausdruck explizit einen Typ anzugeben. Dadurch kann das Aufrufziel endlos gestellt werden. Haskell Power Gebraucht. Beispielsweise erbte die Ausdrücke
lies "42" :: Integer
und
lies "42" :: Doppel
verscherte Werte unterschiedlicher Arten.
Objektorientierung
In der Objektorientierungsprogrammierung ist Ihre Signatur die formale Schnittstelle einer Methode . [4]
Die Signatur spielen Eine Rolle bei der Polymorphie , Einem der Grund Legende Konzepte der Objektorientierung . Im Laufe des Programms können Sie die Methode der Fähigkeiten verwenden.Klasse diese Methode ist die grundlegende Klasse, dann überschreiben , die Signaturen beider Methoden werden identisch.
Überschriebene Methoden
Im following Java -Beispiel Schein Methodensignatur aus Oberklasse und abgeleiteter Klasse gleich zu sein sterben String redeMit( String )
. Für den Compiler, die Methoden der Christenheit und der Signaturen werden weder diese übergeordneten Namen, noch Namen und Klassifizierungen berücksichtigt. Die Methode der abgeleiteten Klasse Hass Hier die Methode der Basisklasse überschreibt (englisch Überschreibung ). Hier ein Beispiel:
// Super- Klasse class Person { String redeMit ( String- Name ) { return "Hallo" + Namen ; } } // Abgeleitic Klasse. Superklassenbeziehung bedeutet Supertyprelation. Klasse persönliche Online erstreckt Person { // Methode redeMit (String) Wird überschrieben String redeMit ( String name ) { return "Schön Dich zu Sehen" + name ; } } öffentliche Klasse Main { public static void main ( String [] args ) { Person p ; // Hier können Sie eine bessere Chance bekommen, eine gute Methode zu bekommen. if ( 0.5 < math . random () ) { p = neue Person (); // Ursprüngliche Person p } else { p = neue NettePerson (); // Person p wird mit "nettem" Verhalten instanziert. } Für ( String name: args ) { System . aus . println ( p . redeMit ( Name ) + "." ); } } }
Zur Zeit wird jeder Gegenstand auf eine virtuelle Methode mit Methoden der Klasse erweitert. Dies wird bei der Object-Instanziierung initialisiert und ermöglicht so Polymorphie , auch übergreifbares Verhalten.
Unterklasse-Instanzen können gegebenfalls oder mit einem so genannten Superzeiger zu den übertriebenen Methoden ihrer Superklassen zugreifen.
Klassierung
Die Männer aller bedeutenden Signaturen definieren die Schnittstelle einer Klasse.
Interne Repräsentation in der Programmiersprache
Viele C ++ – Compiler Bilden aus dem Namen Einer Funktion oder Methode und die kodierten Unterschrift EINER so genannt Dekoriertes Funktionsname ( englisch verstümmelten Name ). Diese zusammengesetzten Namen Bilddas Linkersymbol . DAMIT Kann verhindert Werden, DASS Die Leistung mit Namen gleichen, aber Unterschiedlich Unterschrift Durch die Verbindungen fälschlicherweise Mannheimer verknüpft Werden. Die Namen von Methoden enthalten zusätzlich oder de Klassennamen. Allerdings sind de dekorierten Feature-Namennur für den Passer Compiler bzw. Links zu interpretiert, Wie folgt beispiel Zeigt 😕 Seekpos @? $ Basic_streambuf @ DU? $ Char_traits @ D @ std @@@ std @@ MAE? OF? $ FPÖ @ H @ 2 @ V32 @ H @ Z? Seekpos @? $ basic_streambuf @ GU? $ char_traits @ G @ std @@@ std @@ MAE? OF? $ FPÖ @ H @ 2 @ V32 @ H @ Z
Im Programmierprogramm Java existiert die ebenfalls eigene interne Darstellung von Methodennamen , bei der es sich um einen sogenannten Methodendeskriptor handelt . Im Gegensatz zu C ++ ist dieser Teil der Sprachspezifikation und für alle Compiler und Virtual Machines identisch. Folgendes Beispiel sieht diese interne Form der Signatur der Methode “ Object meineMethode(int i, double d, Thread t)
„. [5]
(IDLjava / lang / Thema;) Ljava / lang / Objekt;
Einzelstunden
- Hochspringen↑ Björn Kellermann: 1.3 Unterschrift, Definition m Haskell, abgelaufen am 3. Februar 2014
- Hochspringen↑ Thomas Briner-Lienhard: Schlüsselwörter für Programmstruktur. (PDF) Oberon, abgelaufen am 3. Februar 2014
- Hochspringen↑ R. Dumke: Einführung, Algorithmen und Datenstrukturen. Otto-von-Guericke-Universität Magdeburg
- Hochspringen↑ Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener: Objektorientiertes Software-Design. Carl Hanser Verlag, München 1993, ISBN 3-446-16319-0
- Hochspringen↑ Tim Lindholm, Frank Yellin: Die Spezifikation Java TM Virtual Machine: Zweite Ausgabe. Abschnitt 4.3.3 Methodenbeschreibungen.