Frage: Welche der folgenden Aussagen sind richtig?
Eine der Aussagen:
Die Typen und die Reihenfolge der formalen Parameter einer Java-Methode legen zusammen mit dem Namen der Methode ihre Signatur fest.
Diese Aussage gilt in der Lösung als richtig. Aber zur Signatur gehört doch gegebenenfalls noch ein Ergebnistyp der Methode? Die "Typen" in der Aussage beziehen sich doch auf die formalen Parameter? Jedenfall lese ich das so.
Also was sagt ihr dazu?
Ich bin ins grübeln gekommen ob ich diese Aussage wegen des fehlenden Ergebnistyps als falsch ansehen soll. In der Lösung is diese Aussage aber als richtig dargestellt.
Die Aussage ist korrekt. In Java gehört der Rückgabetyp nicht zur Signatur.
Ok, im Skript steht das auch so…
aber im "Veranstaltung SE-1: Zusammenfassung der Kernbegriffe mit Glossar"
Stand 20061126.doc
steht:
Eine Signatur legt für eine Methode ihren Namen und ihre Parametertypen sowie gegebenenfalls einen Ergebnistyp fest.
Deswegen hatte ich das wohl so in Erinnerung. Ich denke dieses Glossar habe ich mir irgendwann mal aus dem Commsy geholt?
Ich werde mich dann an das halten was im Skript steht.
Die Aussage ist korrekt. In Java gehört der Rückgabetyp nicht zur Signatur.
Gibt es da eine Begründung für oder ist das Definitionssache?
Wollte schon lange mal wieder den Paragraph-Cowboy spielen.
The Java Language Specification, Third Edition
8.4.2 Method Signature
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.215.12.2 Compile-Time Step 2: Determine Method Signature
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.12.2Also Definition wuerde ich sagen. Eine Begruendung findet sich sicher irgendwo in sekundaer Literatur die ich nicht besitze.
Ist sicherlich eine Definitionssache, was ich als Signatur definiere.
Mit Hilfe der Signatur kann der Compiler die Methoden auseinander halten. D.h. zwei Methoden die gleich heißen dürfen unterschiedliche Parametertypen haben und sind dann verschieden (hier reicht schon die Reihenfolge!). Wenn ich aber eine Kopie einer Methode anlege und nur den Rückgabetyp änder sind die beiden Methoden für den Javacompiler nicht zu unterscheiden und er meckert.
In anderen Sprachen kann (und ist) das durchaus anders, hier wird der Rückgabetyp beachtet. Daher wohl das "gegebenenfalls" in der Formulierung. "void" ist übrigens in dem Sinne auch ein Rückgabetyp, so dass sich das "gegebenfalls" meines erachtens nicht darauf beziehen kann.
Wenn man eine Methode aufruft und den Rückgabewert nicht weiter benutzt wäre es ja dann schwer für den Compiler zuentscheiden welche Methode man gemeint hat.
Dann bräuchte man wieder irgendwelche Sonderregeln. So ist es also einfacher.
Ich denke dieses Glossar habe ich mir irgendwann mal aus dem Commsy geholt?
da kommt das her. es stand aber auch dick daneben:
Dieses Glossar gehört NICHT zum offiziellen Kursmaterial!
und:
Ich übernehme keine Garantie für die Richtigkeit und vor allem nicht für die Vollständigkeit zu den erklärten Begriffen.
(
http://www.mincommsy.uni-hamburg.de/commsy.php?cid=528366&mod=material&fct=detail&iid=624835)
wo kann man die Ikon 1 Testklausur finden?
z.B. im SE1-CommSy. Andere Leute können dir mit Sicherheit noch andere Orte sagen ;)
Ok, im Skript steht das auch so…
aber im "Veranstaltung SE-1: Zusammenfassung der Kernbegriffe mit Glossar"
Stand 20061126.doc
steht:
Eine Signatur legt für eine Methode ihren Namen und ihre Parametertypen sowie gegebenenfalls einen Ergebnistyp fest.
Auf dem SE1, Aufgabenblatt 1 steht genau der gleiche Satz
"Eine Signatur legt für eine Methode ihren Namen und ihre Parametertypen sowie gegebenenfalls einen Ergebnistyp fest."
Aber im Skript ist zu sehen, dass der Ergebnistyp nicht zur Signatur gehört.
Also halte ich mich jetzt an die Aussage im Skript oder wie???????
Der Ergebnistyp ist in Java NICHT Teil der Signatur.