FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Praktische Informatik

Frage zur SE1 Testklausur

Frage zur SE1 Testklausur 2007-02-09 22:39
Anonymer User
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.

Re: Frage zur SE1 Testklausur 2007-02-09 22:59
Tweety
Die Aussage ist korrekt. In Java gehört der Rückgabetyp nicht zur Signatur.

Re: Frage zur SE1 Testklausur 2007-02-10 00:44
Anonymer User
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.

Re: Frage zur SE1 Testklausur 2007-02-10 01:20
GroßerSchöpfer
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?

Re: Frage zur SE1 Testklausur 2007-02-10 01:35
X3K6A2
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.2

15.12.2 Compile-Time Step 2: Determine Method Signature
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.12.2

Also Definition wuerde ich sagen. Eine Begruendung findet sich sicher irgendwo in sekundaer Literatur die ich nicht besitze.


Re: Frage zur SE1 Testklausur 2007-02-10 01:36
Tweety
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.

Re: Frage zur SE1 Testklausur 2007-02-10 13:41
jo
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.

Re: Frage zur SE1 Testklausur 2007-02-10 13:52
T
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)

Re: Frage zur SE1 Testklausur 2007-02-10 21:28
Marina
wo kann man die Ikon 1 Testklausur finden?

Re: Frage zur SE1 Testklausur 2007-02-10 23:31
Hannes
z.B. im SE1-CommSy. Andere Leute können dir mit Sicherheit noch andere Orte sagen ;)

Re: Frage zur SE1 Testklausur 2007-02-12 18:22
Anonymer User
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???????

Re: Frage zur SE1 Testklausur 2007-02-12 18:24
Fred
Der Ergebnistyp ist in Java NICHT Teil der Signatur.

Re: Frage zur SE1 Testklausur 2007-02-13 17:17
low_level
"Eine Signatur legt für eine Methode ihren Namen und ihre Parametertypen sowie gegebenenfalls einen Ergebnistyp fest."

Bessere Variante:

Eine Signatur legt für eine Methode ihren Namen und ihre Parametertypen, in einigen Programmiersprachen auch den Ergebnistyp, fest.

Roland