Шукаєте відповіді та рішення тестів для SEW2a 1xHIT Methoden? Перегляньте нашу велику колекцію перевірених відповідей для SEW2a 1xHIT Methoden в elearning.tgm.ac.at.
Отримайте миттєвий доступ до точних відповідей та детальних пояснень для питань вашого курсу. Наша платформа, створена спільнотою, допомагає студентам досягати успіху!
Durch die Umstellung von Methoden auf Rückgabewerte, können nun Methoden noch flexibler eingesetzt werden. Die Ergebnisse können weiter verarbeitet werden. So können auch Zahlen, die als Ergebnis einer Methode ermittelt werden, in weiteren Rechnungen verwendet werden, die Art der Ausgabe kann gewählt werden und die Ergebnisse können direkt in als Bedingungen in Schleifen oder Verzweigungen eingesetzt werden. Damit diese Flexibilität für möglichst viele Methoden gilt, sollte man sich grundsätzlich an folgende Richtlinien halten:
Jede Methode soll möglichst nur eine einzige Aufgabe erfüllen (also, z.B. nur eine Berechnung)
Ein- und Ausgaben erfolgen nur in der main-Methode (oder in speziellen Ein- bzw. Ausgabemethoden). Keinesfalls sollen Ein- bzw. Ausgaben mit Berechnungen vermischt werden.
Schreibe in der Klasse Mathe
eine Methode hoch2
. Die Methode soll eine Dezimalzahl als Parameter übernehmen und diese quadrieren (also "hoch 2 nehmen"). Das Ergebnis dieser Berechnung soll zurück gegeben werden.
Welchen Namen hat die Klasse, in der die Methode geschrieben wird?
Welchen Namen hat die Methode?
Wieviele Parameter hat die Methode?
Welche/n Datentyp/en hat/haben die Parameter? Achte auf die Reihenfolge und trenne mehrere Datentypen durch einen Beistrich
Was für einen Rückgabetyp braucht die Methode?
Schreibe nun anhand der Informationen die Kopfzeile der Methode (ohne geschwungene Klammer) auf:
Kopiere oder merk dir die Kopfzeile für die nächste Frage
Methoden müssen den Rückgabewert entweder auffangen oder direkt weiterverwenden . Geschieht das nicht, dann ist das Ergebnis verloren und der Aufruf der Methode wäre sinnlos gewesen (Hinweis: es gibt Methoden, wo der Rückgabetyp nur zur Kontrolle dient und wo die Methode eigentlich eine andere Aufgabe hat; bei diesen Methoden kann der Rückgabewert auch ignoriert werden, da der Compiler keinen Fehler beim Ignorieren des Rückgabewertes meldet - solche Methoden kommen aber im ersten Jahrgang nicht vor).
Für die Auffangvariable gilt ähnliches, wie schon beim Rückgabewert und bei den Parametern: sie muss zur Deklaration, d.h. zum Rückgabetyp passen. Wenn - wie in diesem Fall - der Rückgabetyp der aufgerufenen Methode ( ist, dann muss auch die Auffangvariable vom Typ sein. Die Methode kann auch direkt überall dort verwendet werden, wo ein -Wert erforderlich ist, z.B. in der Ausgabe-Anweisung. In diesem Fall wird der Rückgabewert nicht gespeichert, sondern direkt weiterverwendet.malReihe
) String
String
String
Im folgenden sind die Dokumentationskommentare für einige Methoden gegeben. Gib an, welchen Datentyp die Auffangvariable braucht. Achte insbesondere darauf, ob in der Methode eine Ausgabe (=Rückgabetyp void
) oder eine Rückgabe erfolgt.
Diese Methode gibt das Ergebnis einer Division zweier Zahlen als Dezimalzahl zurück.
Diese Methode gibt eine Zierzeile aus den Zeichen ~#+#~ (16x; also insgesamt 80 Zeichen) zurück.
Diese Methode gibt eine Zierzeile aus den Zeichen ~#+#~ (16x; also insgesamt 80 Zeichen) aus.
Diese Methode überprüft, ob eine Zahl innerhalb des gültigen Bereichs von 1-5 liegt.
Wir können die malReihen-Methode aus dem vorigen Kapitel nun so ändern, dass keine Ausgabe erfolgt, sondern der Ergebnistext zurückgegeben wird. Dadurch können wir bei jeder Verwendung der Methode selbst entscheiden, ob die Ausgabe auf der Konsole oder in einer anderen Ausgabe-Form erfolgt (siehe dazu auch das nachfolgende Kapitel über Ausgabe-Dialoge oder noch später einmal in einer selbst gestalteten Benutzeroberfläche).
Das heißt, wir wollen keine Maschine, die direkt die Konsole verändert, sondern ein Maschine, die uns ein Ergebnis zur Weiterverarbeitung liefert. Man kann sich so eine Maschine so vorstellen, dass sie eine „Auslassöffnung" hat, die das Ergebnis an den Aufrufer liefert:
Wenn man eine Methode mit Rückgabewert definieren will, dann muss man (steht für leer oder nichts) als Rückgabetyp in der Methodenkopfzeile angeben. Zur Erinnerung ist hier noch einmal die Struktur einer Methodenkopfzeile angegeben:void
Zugriffsmodifikatoren Rückgabetyp Methodenname
Entscheide bei folgenden Aufgabenstellungen, welcher Rückgabetyp passend wäre. Achte insbesondere darauf, ob in der Aufgabenstellung eine Ausgabe (=Rückgabetyp void
) oder eine Rückgabe verlangt ist.
Schreibe eine Methode die das Ergebnis einer Division zweier Zahlen als Dezimalzahl zurück gibt. Rückgabetyp:
Schreibe eine Methode, die eine Zierzeile aus den Zeichen ~#+#~ (16x; also insgesamt 80 Zeichen) ausgibt. Rückgabetyp:
Schreibe eine Methode, die eine Zierzeile aus den Zeichen ~#+#~ (16x; also insgesamt 80 Zeichen) zurück gibt. Rückgabetyp:
Schreibe eine Methode, die überprüft, ob eine Zahl innerhalb des gültigen Bereichs von 1-5 liegt. Wenn die Zahl im Bereich 1-5 liegt soll true
zurück gegeben werden, andernfalls false
. Rückgabetyp:
Wenn Methoden ihre Ergebnisse ausgeben, dann können diese Ergebnisse im Programm nicht mehr weiter verwendet werden. Auch die Art der Ausgabe ist durch die Methode festgelegt und nicht flexibel (siehe auch nachfolgende Kapitel). Rückgabewerte beheben dieses Problem.
Methoden können EIN Ergebnis als Rückgabewert an den aufrufenden Programmteil liefern. Dieser Aufrufer muss dieses Ergebnis entweder mit Hilfe einer Auffangvariable speichern oder direkt weiterverwenden, sonst geht dieses Ergebnis verloren. Beispiele aus der API sind:
oder
Mit Hilfe von
Damit Rückgabewerte weiterverwendet werden können, werden sie in gespeichert.
Der Datentyp der Auffangvariablen muss zum der Methode passen.
So hat z.B. die Metode Input.readLine(...)
den Rückgabetyp . Deshalb muss auch die Auffangvariable den Datentyp haben.
Rückgabewerte können auch gleich weiterverwendet werden: Anstatt dass im Vergleich eine char
-Variable mit einem char
-Literal eingesetzt wird, kann auch direkt der Rückgabewert der Methode Input.readChar(...)
mit dem char
-Literal verglichen werden. Methode Input.readChar(...)
hat immerhin den Rückgabetyp .
Gegeben ist die Klasse mit der Methode aus den vorigen beiden Übungen (die Methode ist in der gegebenen Klasse definiert):
Ergänze die folgenden Aussagen, so dass sie für diese Methode zutreffen.
Die gegebene Methode ist in der Klasse definiert.
Der Name der Methode lautet .
Das Schlüsselwort in der API-Dokumentation dieser Methode zeigt an, dass es sich um eine
Klassenmethoden werden grundsätzlich mit .
aufgerufen.
Diese Methode wird daher konkret mit .
aufgerufen.
Der Parameter hat den Datentyp .
Daher wird als Parameter
Schreibe ein Beispiel für einen Aktualparameter hin, der für diesen Parameter eingesetzt werden kann. Der Beispielwert soll dem Wert für wahr entsprechen (Achte auf den Datentyp des Parameters)
Diese Methode benötigt
Der Rückgabetyp der Methode ist , deshalb muss auch die Auffangvariable den Typ haben.
Deklariere eine passende Auffangvariable mit dem Namen ergebnis
:
Schreibe einen Aufruf für diese Methode hin, die das Ergebnis in die bereits deklarierte Variable namens ergebnis
speichert. Als Parameter soll ein Wert verwendet werden, der dem Wert wahr entspricht. Achte auf den Datentyp des Parameters.
parseDouble
Um die Ähnlichkeiten zwischen den unterschiedlichen parse-Methoden zu zeigen, wird hier noch die API-Dokumentation der Methode der Klasse parseDouble
Double
aus dem Paket java.lang
angegeben:
Die Antworten auf die Überlegungen zum Aufruf ergeben sie daher ähnlich:
Überprüfen, ob es sich um eine Klassenmethode handelt: Ist das Schlüsselwort static in der Methodendokumentation vorhanden? Bei dieser Methode: Ja, d.h. es ist eine Klassenmethode, damit hat der Aufruf die Struktur:Double.parseDouble
Für jeden Formalparameter in der Methodendefinition muss ein Aktualparameter (= aktueller Wert) festgelegt werden:
1 Parameter vom Typ , der in eine Fließkommazahl umgewandelt werden kann und dafür nur aus Ziffern, einem Punkt als Dezimaltrennzeichen und ev. einem Vorzeichen besteht, z.B.: "37.8" oder ein entsprechender Wert in einer Eingabe-Variablen.String
: irgendein String
Überprüfen, ob eine Auffangvariable benötigt wird (Rückgabetyp ≠ Bei dieser Methode: , d.h. es wird eine Auffangvariable vom Typvoid
) oder nicht (Rückgabetyp = void
):Welchen Rückgabetyp hat die Methode?double
double
benötigt
Ein möglicher Aufruf könnte z.B. folgendermaßen aussehen:
Die Methode für Umwandlung von String
in double
ist in der Klasse definiert.
Der Name dieser Methode lautet .
Das Schlüsselwort in der API-Dokumentation dieser Methode zeigt an, dass es sich um eine
Klassenmethoden werden grundsätzlich mit .
aufgerufen.
Diese Methode wird daher konkret mit .
aufgerufen.
Für den einzigen Parameter wird
Diese Methode benötigt
Der Rückgabetyp der Methode ist , deshalb muss auch die Auffangvariable den Typ haben.
Die Methode parseInt übernimmt einen als Parameter übergebenen String-Wert, wandelt die darin enthaltene Zahl in einen int-Wert um, und gibt diesen zurück. Sie ist folgendermaßen aufgebaut:
Für den Aufruf müssen wieder die bei den Eingabe-Methoden besprochenen Punkte überlegt werden:
Überprüfen, ob es sich um eine Klassenmethode handelt: Ist das Schlüsselwort static in der Methodendokumentation vorhanden? Bei dieser Methode: Ja, d.h. es ist eine Klassenmethode, damit hat der Aufruf die Struktur:Integer.parseInt
Für jeden Formalparameter in der Methodendefinition muss ein Aktualparameter (= aktueller Wert) festgelegt werden:
1 Parameter vom Typ , der in eine ganze Zahl umgewandelt werden kann und dafür nur aus Ziffern und ev. einem Vorzeichen besteht, z.B.: "5242" oder ein entsprechender Wert in einer Eingabe-Variablen.String
: irgendein String
Überprüfen, ob eine Auffangvariable benötigt wird (Rückgabetyp ≠ Bei dieser Methode: , d.h. es wird eine Auffangvariable vom Typvoid
) oder nicht (Rückgabetyp = void
):Welchen Rückgabetyp hat die Methode?int
int
benötigt
Ein möglicher Aufruf könnte z.B. folgendermaßen aussehen:
Die Methode für Umwandlung von String
in int
ist in der Klasse definiert.
Der Name dieser Methode lautet .
Das Schlüsselwort in der API-Dokumentation dieser Methode zeigt an, dass es sich um eine
Klassenmethoden werden grundsätzlich mit .
aufgerufen.
Diese Methode wird daher konkret mit .
aufgerufen.
Für den einzigen Parameter wird
Diese Methode benötigt
Der Rückgabetyp der Methode ist , deshalb muss auch die Auffangvariable den Typ haben.
Die für Benutzereingaben benützte Methode der Klasse zurückgeben. Das ist zum Beispiel problematisch, wenn man eine Zahl einlesen möchte, mit der gerechnet oder die in einem Vergleich verwendet werden soll. Dazu müsste diese Zahl auch als einfacher Zahlendatentyp (z.B. int oder double) vorliegen.showInputDialog
JOptionPane
kann nur String
-Werte
Auch für dieses Problem gibt es in der Java-API Methoden für das Umwandlen von ... einwickeln) der primitiven Datentypen. Nachdem in Java alle Methoden in Klassen organisiert sein müssen, dienen die Wrapper-Klassen u.a. als Container für Methoden die den einfachen Datentypen zugeordnet sind.String
in einen anderen Datentyp. Sie befinden sich in den Wrapper-Klassen (von wrap
Die Umwandlungsmethoden selbst beginnen mit dem Wort parse (= "Text analysieren") gefolgt vom Datentyp, in den umgewandelt werden soll. Die folgende Tabelle bietet einen kleinen Auszug:
Ziel-Datentyp | Wrapper-Klasse | parse-Methode |
---|---|---|
int | Integer | parseInt |
double | Double | parseDouble |
boolean | Boolean | parseBoolean |
char | Character | keine parse-Methode |
Als Beispiel wird hier die Methode genauer vorgestellt. Die anderen parse-Methoden sind ganz ähnlich aufgebaut. Die Klasse , wie ein Blick in die API-Dokumentation verrät:parseInt
der Klasse Integer
Integer
befindet sich im Paket java.lang
java.lang
Das Paket, in dem sich die Klasse befindet, ist das Kernpaket der Programmiersprache Java. Die Bezeichnung leitet sich aus der Abkürzung des englischen Begriffs ab. Da dieses Paket die zentralen Klassen von Java enthält, müssen diese nicht vom Programm importiert werden. Sie sind . In diesem Package sind auch die Klassen für die Konsolen-Ausgabe enthalten, die schon bisher ohne verwendet wurden. Ebenfalls darin enthalten sind alle Wrapper-Klassen.Integer
java.lang
String
und System
import
Die Methode showInputDialog
der Klasse JOptionPane
gibt immer den Datentyp zurück.
Um einen anderen Datentyp z.B. zum Berechnen von Werte zu bekommen muss der String
-Wert
Für das Umwandeln von String
-Werten in einen einfachen Datentyp gibt es passende Methoden in den -Klassen.
Die Umwandlungsmethoden in den Wrapper-Klassen beginnen alle mit dem Wort (für Text analysieren}
Die Wrapper-Klasse für den Datentyp int
heißt .
Die Methode zum Umwandeln String
in int
heißt .
Die Klasse Integer
befindet sich im Paket
Dieses Paket ist besonders, weil Klassen aus diesem Paket
Weitere Klassen, die in diesem java.lang
-Package sind, und daher nicht vom Programm importiert werden müssen, sind:
showMessageDialog
Im obigen Beispiel erfolgt die Ausgabe noch über die Konsole. Die Klasse -Fenster. Sie heißt . Die einfachste Variante ist folgendermaßen aufgebaut:JOptionPane
besitzt aber auch Methoden für ein Ausgabe-DialogshowMessageDialog
Wer die -Methode vergleicht, wird feststellen, dass abgesehen vom Namen nur der Rückgabetyp anders ist. Dementsprechend laufen die Überlegungen zum Methodenaufruf ähnlich ab:showMessageDialog
-Methode mit der showInputDialog
Überprüfen, ob es sich um eine Klassenmethode handelt: Ist das Schlüsselwort static in der Methodendokumentation vorhanden? Bei dieser Methode: Ja, d.h. es ist eine Klassenmethode, damit hat der Aufruf die Struktur:JOptionPane.showMessageDialog
Für jeden Formalparameter in der Methodendefinition muss ein Aktualparameter (= aktueller Wert) festgelegt werden:
Erster Parameter: dieser ist vom Objekttyp (erkennbar am großen Anfangsbuchstaben). Hier geben wir den Wert (ausgeschrieben, nicht die Ziffer 0), der bei Objekten als Ersatz für "nichts" verwendet wird, an. Das zeigt Java an, dass dieses Dialog-Fenster zu keiner größeren übergeordneten grafischen Oberfläche dazu gehört.Component
Zweiter Parameter: Ebenfalls ein Objekttyp, der dafür steht, dass man irgendeine beliebige Nachricht als Objekt angegeben kann. Nachdem String ein Objektdatentyp ist, können auch Variablen oder Literale vom Typ String dafür verwendet werden, z.B:"Eingabe:" + eingabe
Überprüfen, ob eine Auffangvariable benötigt wird (Rückgabetyp ≠ In dieser Methode: benötigtvoid
) oder nicht (Rückgabetyp = void
):Welchen Rückgabetyp hat die Methode?void
, d.h. es wird keine Auffangvariable
Die Methode für die grafikbasierten Ausgabedialoge ist in der Klasse definiert.
Der Name der Methode für die grafikbasierten Ausgabedialoge lautet .
Das Schlüsselwort in der API-Dokumentation dieser Methode zeigt an, dass es sich um eine
Klassenmethoden werden grundsätzlich mit .
aufgerufen.
Diese Methode wird daher konkret mit .
aufgerufen.
Für den ersten Parameter werden wir derzeit immer den Wert einsetzen, weil wir keine selbst programmierte grafische Oberfläche haben, mit der wir unseren Eingabedialog verbinden wollen.
Als zweiter Parameter wird
Diese Methode benötigt
showInputDialog
Für die grafikbasierte Eingabe wird die Klassenmethode der Klasse benötigt. Ein Aufruf dieser Methode erzeugt ein Eingabe-showInputDialog
JOptionPane
In der API-Dokumentation ist die Methode folgendermaßen angegeben:showInputDialog
Um die Methode zu verwenden müssen die selben Punkte nacheinander überlegt werden, wie bei selbstgeschriebenen Methoden.showInputDialog
Überprüfen, ob es sich um eine Klassenmethode handelt: Ist das Schlüsselwort static in der Methodendokumentation vorhanden? Bei dieser Methode: Ja, d.h. es ist eine Klassenmethode, damit hat der Aufruf die Struktur:JOptionPane.showInputDialog
Für jeden Formalparameter in der Methodendefinition muss ein Aktualparameter (= aktueller Wert) festgelegt werden:
Erster Parameter: dieser ist vom Objekttyp (erkennbar am großen Anfangsbuchstaben). Hier kann man angeben zu welcher grafischen Oberflächenkomponente der Eingabedialog dazu gehört. Nachdem wir erst viel, viel später grafische Oberflächen verwenden, kann derzeit der Wert (ausgeschrieben, nicht die Ziffer 0) angegeben werden, der bei Objekten als Ersatz für "nichts" verwendet wird.Component
Zweiter Parameter: Ebenfalls ein Objekttyp, der dafür steht, dass man irgendeine beliebige Nachricht als Objekt angegeben kann. Nachdem String ein Objektdatentyp ist, können auch Variablen oder Literale vom Typ String dafür verwendet werden, z.B:"Eingabe bitte:"
Überprüfen, ob eine Auffangvariable benötigt wird (Rückgabetyp ≠ Bei dieser Methode: , d.h. es wird eine Auffangvariable vom Typ void
) oder nicht (Rückgabetyp = void
):Welchen Rückgabetyp hat die Methode?String
String
benötigt.
Die Methode für die grafikbasierten Eingabedialoge ist in der Klasse definiert.
Der Name der Methode für die grafikbasierten Eingabedialoge lautet .
Das Schlüsselwort in der API-Dokumentation dieser Methode zeigt an, dass es sich um eine
Klassenmethoden werden grundsätzlich mit .
aufgerufen.
Diese Methode wird daher konkret mit .
aufgerufen.
Für den ersten Parameter werden wir derzeit immer den Wert einsetzen, weil wir keine selbst programmierte grafische Oberfläche haben, mit der wir unseren Eingabedialog verbinden wollen.
Als zweiter Parameter wird
Diese Methode benötigt
Der Rückgabetyp der Methode ist , deshalb muss auch die Auffangvariable den Typ haben.
Отримайте необмежений доступ до відповідей на екзаменаційні питання - встановіть розширення Crowdly зараз!