Einleitende Beispiele zur Deklaration von Parametern in Java (Einleitende Beispiele zur Deklaration von Parametern in Java), Lektion, Seite 723793
https://www.purl.org/stefan_ram/pub/einleitung_parameter_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Die Deklaration von Parametern in Java 

Wir haben Parametertypen und Parametername schon bei der Betrachtung der Dokumentation  von Methoden kennengelernt.

Proklamation aus der Dokumentation einer Methode
public static double floor( double a )

Die Parameterproklamation »double a« aus der Dokumentation besagt, daß die Methode »floor« einen Parameter »a« mit dem Typ »double« besitzt. Entsprechend muß sie mit einem Argument vom Typ »double« (oder vom Untertyp »int«) aufgerufen werden.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( java.lang.Math.floor( 2.8 )); }}
Protokoll
2.0

Auch in der Deklaration einer Methode kann in den Klammern eine Angabe geschrieben werden, die der Parameterproklamation aus der Dokumentation ähnelt und als Parameterdeklaration  bezeichnet wird.

Eine Parameterdeklaration deklariert eine lokale Variable einer Methode, deren Wert zunächst offengelassen, und später bei einem Aufruf nachgetragen werden kann. Die Parameterdeklaration findet sich in einer Methodendeklaration in den runden Klammern am Ende des Kopfes.

Main.java

public final class Main
{

public static void hallo( final java.lang.String name )
{ java.lang.System.out.println( "Hallo " + name + "!" ); }

public static void main( final java.lang.String[] args )
{ hallo( "Mia" ); }}

Protokoll
Hallo Mia!

Durch die Parameterdeklaration »final java.lang.String name« wird für die Methode »hallo« eine Variable deklariert, deren Wert beim Aufruf »hallo( "Mia" )« durch das Argument »"Mia"« als »"Mia"« festgelegt wird. Der Ausdruck »"Hallo " + name + "!"« ergibt dann die Zeichenfolge »Hallo Mia!«, welche dann ausgegeben wird.

Mit »final java.lang.String name« wird für die Methode »hallo« ein Parameter festgelegt (deklariert), dessen Typ »java.lang.String« ist und dessen Name »name« lautet. Der Parameter verhält sich wie eine Variable, die am Anfang des äußersten Blocks seiner Methode deklariert wurde, das heißt: Der Gültigkeitsbereich eines Parameters ist der Rumpf seiner Methode.

Man kann auch zu Parametern kommen, in dem man von einem Programm mit Redundanz (unnötiger Wiederholung) ausgeht.

Main.java

public final class Main
{

public static void hallo_mia()
{ java.lang.System.out.println( "Hallo Mia!" ); }

public static void hallo_ben()
{ java.lang.System.out.println( "Hallo Ben!" ); }

public static void main( final java.lang.String[] args )
{ hallo_mia();
hallo_ben(); }}

Protokoll
Hallo Mia!
Hallo Ben!

Der Wunsch, die beiden sehr ähnlichen Deklarationen von »hallo_mia« und »hallo_ben« zu vereinigen führt dann zu einer Deklaration, in welcher der Unterschied  zwischen den beiden ähnlichen Deklarationen durch einen Parameter  ausgedrückt wird.

Main.java

public final class Main
{

public static void hallo( final java.lang.String name )
{ java.lang.System.out.println( "Hallo " + name + "!" ); }

public static void main( final java.lang.String[] args )
{ hallo( "Mia" );
hallo( "Ben" ); }}

Protokoll
Hallo Mia!
Hallo Ben!

»final« _

Bei Verwendung von »final« sind keine Zuweisungen an den Parameter erlaubt. Der Anfangswert des Parameters ist der Wert des beim Aufrufs angegebenen Arguments, welcher unmittelbar vor dem Aufruf ermittelt wird, so wie dies schon früher bei der Behandlung von Aufrufen von Methoden der Standardbibliothek behandelt wurde. Alles dort für Aufrufe von Methoden der Standardbibliothek gesagte gilt auch für Aufrufe von im selben Programm deklarierten Methoden.

Wenn wir »final« für den Parameter verwenden, können wir (beispielsweise weiter unten in Übungsaufgaben) sinnvoll von dem „Parameterwert“ sprechen. Ohne »final« wäre dies nicht mehr ohne weiteres möglich, weil dieser Wert dann beim Ablauf der Methode verändert werden könnte, es dann also „den Parameterwert“ nicht mehr gibt. Daher ergibt sich die folgende Stilregel:

ℛ Stilregel Parameter sollten mit dem Variablenmodifizierer »final« deklariert werden.

Beispiel einer Parameterdeklaration
final java.lang.String name
Syntax einer Parameterdeklaration
Parameterdeklaration
.----------------.
| .-----. v .-----. .------------.
----'--->( final )---'--->| Typ |--->| Bezeichner |--->
'-----' '-----' '------------'

(Die Bedeutung von »Typ« und »Bezeichner« im obigen Syntaxdiagramm ist dabei wie schon zuvor bei der Syntax Variablendeklaration.)

Die Namen lokaler Variablen einer Methode müssen sich von den Namen aller Parameter derselben Methode unterscheiden.

Der Typ des Arguments  muß ein Untertyp  des Typs des Parameters  sein, beispielsweise ist für ein double-Parameter auch ein int-Argument zulässig.

Wenn eine Methode mit einem Argument aufgerufen wird, dann wird der Wert des Arguments in den Typ des Parameters gewandelt, und der Parameter erhält dann für die durch den Aufruf erzeugte Inkarnation der Methode jenen gewandelten Wert. Daher könnte man den Parameter auf deutsch auch als „Empfänger“ bezeichnen – er empfängt den Wert des Arguments.

Im folgenden Programm wird der Argumentwert »2« beispielsweise in den Parameterwert »2.0« gewandelt.

Main.java

public final class Main
{

public static void m( final double x )
{ java.lang.System.out.println( x ); }

public static void main( final java.lang.String[] args )
{ m( 2 ); }}

Protokoll
2.0

Parameter als Abstraktionstechnik _

Parameter stehen innerhalb einer Methodendeklaration für Details, die man nicht in der Methodendeklaration festlegen will.

Die Methode »f« gibt immer  »7« aus.

Methodendeklaration
public static void f()
{ java.lang.System.out.println( 7 ); }

Die Methode »g« gibt eine beliebige Zahl aus (die ihre beim Aufruf übergeben werden kann).

Methodendeklaration
public static void g( final int x )
{ java.lang.System.out.println( x ); }

Vergleich mit Dokumentation _

Wir haben Parametertypen und Parametername schon früher bei der Betrachtung der Dokumentation  von Methoden kennengelernt.

Proklamation aus der Dokumentation einer Methode
public static double floor(       double a )
Möglicher Kopf einer entsprechenden Methodendeklaration
public static double floor( final double a )

Die Proklamation  aus der Dokumentation einer Methode unterscheidet sich vom Kopf einer Methodendeklaration  nur geringfügig:

Parametrisierte Wertmethoden _

Die im folgenden definierte parametrisierte Wertmethode kann verwendet werden, um eine Zahl mit 10 zu multiplizieren.

Main.java

public final class Main
{

public static int mal10( final int zahl )
{ return zahl * 10; }

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( mal10( 22 ));
java.lang.System.out.println( mal10( 23 )); }}

transcript
220
230

Der Typname »int« am Anfang der Methodendefinition bestimmt, daß das Ergebnis der Methode ein Wert des Datentyps »int« ist.

Der Parameter »zahl« ist mit »final« gekennzeichet. Das ist kein Widerspruch dazu, daß er im Laufe der Zeit zuerst den Wert «22» und dann den Wert «23» erhält, da dies während zweier verschiedener Inkarnationen (Aufrufen)der Methode geschieht. Während jeder einzelnen Inkarnation  ist der Wert des Parameters aber konstant. Insbesondere enthält der Rumpf der Methode keine Zuweisung an den Parameter »zahl«, was durch das »final« verboten wird.

Sprechweise „Die Methode m  ergibt den Wert w  für die Zeichenfolge s.“ bedeutet, daß die Methode m  den Wert w  ergibt, wenn sie mit der Zeichenfolge s  als Argumentwert aufgerufen wird. Die Methode »mal10« ergibt beispielsweise den Wert «220» für die ganze Zahl «22».

Veränderung von Parametern ⃗

Wenn Parameter nicht mit »final« deklariert wurden, können sie die linke Seite einer Zuweisung bilden.

Da »i« eine von »n« unabhängige Variable ist, die lediglich eine Kopie des Wertes aus »n« erhält, wirkt sich die Veränderung des Wertes von »i« nicht auf »n« aus.

Main.java

public final class Main
{

public static void inc( int i )
{ i = i + 1;
java.lang.System.out.println( "i = " + i ); }

public static void main( final java.lang.String[] args )
{ int n = 2;
inc( n );
java.lang.System.out.println( "n = " + n ); }}

Protokoll
i = 3
n = 2

Eine versehentliche Zuweisung an einen Parameter kann durch Deklaration der Parametervariablen mit »final« verhindert werden.

Weiterleitungsmethoden ⃗

Auch parametrisierte Methoden können an andere Methoden weiterleiten.

Im folgenden Beispiel wird beispielsweise eine parametrisierte Methode »cos« deklariert, die an eine vordefinierte Methode weiterleitet.

Main.java

public final class Main
{

public static double cos( final double x )
{ return java.lang.Math.cos( x ); }

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( cos( 0 )); }}

Protokoll
1.0

Kombinationsmethoden ⃗

Im folgenden Beispiel wird eine parametrisierte Methode »cos« deklariert, die jedoch ein Argument in Grad  statt in Radiant  akzeptiert.

Main.java

public final class Main
{

public static double cos( final double angle )
{ return java.lang.Math.cos( java.lang.Math.toRadians( angle )); }

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( cos( 90 )); }}

Protokoll
6.123233995736766E-17

Die Methode »cos« verwendet zunächst »java.lang.Math.toRadians« um den Winkelwert «angle» in einen Radiantenwert umzuwandeln, der dann als Argumentwert im Aufruf der Methode »java.lang.Math.cos« verwendet wird.

Hier handelt es sich um eine Kombinationsmethode, da sie nichts weiter macht, als vorhandene Methode zu einer neuen Methode zu kombinieren.

Operatormethoden ⃗

Eine Operatormethode  ist eine Methode wie »java.lang.Math.double.sum(double,double)«, die an einen Operator wie »+« weiterleitet

Main.java

public final class Main
{

public static double neg( final double x )
{ return -x; }

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( neg( 90 )); }}

Protokoll
-90.0

Untertyptest ⃗

Um zu testen, ob »int« wirklich ein Untertyp von »double« ist, kann eine Methodendeklaration mit einem int-Rückgabeausdruck geschrieben werden, deren Rückgabetyp »double« ist. Da der Typ des Rückgabeausdrucks ein Untertyp des Rückgabetyps der Methode sein muß, wird ein Programm mit solch einer Methodendeklaration von einer Java -Implementation nur ohne Fehlermeldung akzeptiert, wenn »int« Untertyp von »double« ist.

Main.java

public final class Main
{

public static double test( final int i ){ return i; }

public static void main( final java.lang.String[] args ) {} }

Fachsprache

Im folgenden nennen wir in den Aufgaben verwendete Fachverben und dann typischerweise damit verbundene Sprachelemente.

Tabelle

ausgeben print / println

zurueckgeben, ergeben, berechnen return

akzeptieren, uebergeben Parameter

Das heißt:

Übungsfragen

?   Übungsfrage 0 ⃖

Welche Ausgabe erzeugt das folgende Programm?

Main.java

public final class Main
{

public static void put( final int n )
{ java.lang.System.out.println( n ); }

public static void main( final java.lang.String[] args )
{ put( 4 ); }}

?   Übungsfrage 1

Das folgende Protokoll wurde erstellt.

Main.java

public final class Main
{

public static void gruesse( final java.lang.String name )
{ java.lang.System.out.println( "Hallo " + name + "!" ); }

public static void main( final java.lang.String[] args )
{ gruesse( "Mia" ); }}

Protokoll
Hallo Mia!

Welche Ausgabe würde die Auswertung des Ausdrucks »gruesse( "Ben" )« im Hauptprogramm ergeben?

?   Übungsfrage 2 _

Welche Ausgabe erzeugt das folgende Programm?

Main.java

public final class Main
{

public static int id( final int n )
{ return n; }

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( id( 4 )); }}

?   Übungsfrage 3 _

Die Methode »m()« sei definiert wie in dem folgenden Programm:

Main.java

public final class Main
{

public static int m( final double x ){ return 2; }

public static void main( final java.lang.String[] args )
{ m( 3 ); }}

Welchen Typ hat dann der Ausdruck »m( 3 )« in dem obenstehenden Programm?

Welchen Wert hat dann der Ausdruck »m( 3 )« in dem obenstehenden Programm?

?   Übungsfrage 4 _

Das folgende Ausgabeprotokoll wurde erstellt.

Main.java

public final class Main
{

public static void hallo( final java.lang.String name )
{ java.lang.System.out.println( "Hallo " + name + "!" ); }

public static void main( final java.lang.String[] args )
{ hallo( "Mia" ); }}

java.lang.System.out
Hallo Mia!

Welche Ausgabe würde die Auswertung des Ausdrucks »hallo( "Ben" )« im Hauptprogramm ergeben?

?   Übungsfrage 5 _

Welchen Wert hat der Parameter »i« bei der Ausführung der Methode »method(int)« des folgenden Programms?

Main.java

public final class Main
{

public static void method( final int i )
{ }

public static void main( final java.lang.String[] args )
{ method( 2 + 3 ); }}

?   Übungsfrage 6 _

Welche Ausgabe erzeugt das folgende Programm?

Main.java

public final class Main
{

public static void put( final int n )
{ java.lang.System.out.println( n ); }

public static void main( final java.lang.String[] args )
{ put( 4 );
put( 5 ); }}

?   Übungsfrage 7 _

Welche Ausgabe erzeugt das folgende Programm?

Main.java

public final class Main
{

public static void p( final int n )
{ java.lang.System.out.println( n + 1 ); }

public static void main( final java.lang.String[] args )
{ p( 4 );
p( 5 ); }}

?   Übungsfrage 8

Welche Ausgabe erzeugt das folgende Programm?

Main.java

public final class Main
{

public static int f( final int n )
{ return n + 2; }

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( f( 2 + 3 ));
java.lang.System.out.println( f( 2 )+ f( 3 )); }}

?   Übungsfrage 9 _

Was gibt das folgende Programm aus?

Main.java

public final class Main
{

public static int method( final int i )
{ java.lang.System.out.println( i );
return 2 * i; }

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( method( 2 + 4 )); }}

?   Übungsfrage 10 _

Was gibt das folgende Programm aus?

Main.java

public final class Main
{

public static int method( final int i )
{ java.lang.System.out.println( i + 5 );
return i - 2; }

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( 3 * method( 3 + 4 )); }}

?   Übungsfrage 11 _

Was gibt das folgende Programm aus?

Main.java

public final class Main
{

public static void f( final int i )
{ java.lang.System.out.print( "A" ); }

public static int g()
{ java.lang.System.out.print( "B" ); return 4; }

public static void main( final java.lang.String[] args )
{ f( g() ); java.lang.System.out.println(); }}

?   Deklaration und Aufruf _

Ist »public static void inc( int i ) { i = i + 1; }« in dem folgenden Programm eine Deklaration oder ein Aufruf?

Ist »inc( n + 1 )« in dem folgenden Programm eine Deklaration oder ein Aufruf?

Main.java

public final class Main
{

public static void inc( int i ) { i = i + 1; }

public static void main( final java.lang.String[] args )
{ int n = 2; inc( n + 1 ); java.lang.System.out.println( n ); }}

?   Parameter und Argumente _

Ein Parametername wird oft kurz als „Parameter“ bezeichnet, da er ja für den Parameter steht.

Ein Argumentausdruck wird oft kurz als „Argument“ bezeichnet.

Ist »i« in dem folgenden Programm ein Parameter oder ein Argument?

Ist »n + 1« in dem folgenden Programm ein Parameter oder ein Argument?

Main.java

public final class Main
{

public static void inc( int i ) { i = i + 1; }

public static void main( final java.lang.String[] args )
{ int n = 2; inc( n + 1 ); java.lang.System.out.println( n ); }}

?   Ausgabe einer Methode ⃗

Was gibt die folgende Methode aus?

(Genauer gefragt: Was würde die Auswertung eines Aufrufs der von der folgenden Methodendeklaration definierten Methode ausgeben?)

Methodendeklaration
public static int m()
{ java.lang.System.out.println( 4 ); return 9; }

?   Rückgabe einer Methode ⃗

Was gibt die folgende Methode zurück?

(Genauer gefragt: Welchen Wert würde die Auswertung eines Aufrufs der von der folgenden Methodendeklaration definierten Methode ergeben?)

Methodendeklaration
public static int m()
{ java.lang.System.out.println( 7 ); return 3; }

?   Übungsfrage 12 _

Was muß in dem folgenden Programm an der Stelle der Lücke stehen?

Programm mit Lücke

public final class Main
{

public static void m( __________ )
{ java.lang.System.out.println( d ); }

public static void main( final java.lang.String[] args )
{ m( 4.3 ); }}

?   Übungsfrage 13 ⃖ _

Welche Ausgabe erzeugt das folgende Programm?

Main.java

public final class Main
{

public static int m( final int i ){ return i + 2; }

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( m( 5 ));
java.lang.System.out.println( m( m( 5 ))); }}

?   Übungsfrage 14 ⃖ _

Was muß an Stelle der Lücke eingesetzt werden, damit das Programm »Kommunalobligation« ausgibt?

Main.java

public final class Main
{

public static void m( final java.lang.String arg )
{ java.lang.System.out.println( arg + "obligation" ); }

public static void main( final java.lang.String[] args )
{ m( __________ ); }}

Protokoll der Lösung
Kommunalobligation

?   Übungsfrage 15 ⃖ _

Was muß an Stelle der Lücken eingesetzt werden, damit das Programm »barbar« und »bonbon« ausgibt?

Main.java

public final class Main
{

public static void m( final java.lang.String arg )
{ java.lang.System.out.println( arg + arg ); }

public static void main( final java.lang.String[] args )
{ m( __________ );
m( __________ ); }}

Protokoll der Lösung
barbar
bonbon

?   Übungsfrage 16 ⃖ _

Ein Aufruf der Methode »doppelt« soll das Doppelte des Argumentwertes jenes Aufrufs ergeben. Was muß dazu an der Stelle der Lücke »__________« stehen?

Methode
public static double doppelt( final double x ){ __________; }

?   Übungsfrage 17 ⃖ _

Was muß an der Stelle der Lücke »__________« stehen?

Methode
public __________ convert( final double x ){ return "" + x; }

?   Übungsfrage 18 ⃖ _

Welche Ausgabe erzeugt das folgende Programm?

Main.java

public final class Main
{

public static int f(){ java.lang.System.out.println( "f" ); return 0; }

public static void eval( final int x ){}

public static void main( final java.lang.String[] args )
{ eval( f() ); }}

?   Übungsfrage 19 _

Welche der folgenden Methodendeklarationen kann ohne Fehlermeldung kompiliert werden?

Methodendeklarationen

public static int m1( final int x ){ return x; }

public static int m2( final double x ){ return x; }

public static double m3( final int x ){ return x; }

public static double m4( final double x ){ return x; }

?   Übungsfrage 20 _

Die Methode »m(double)« sei folgendermaßen deklariert:

Methodendeklaration
public static void m( final double x ){}

Welche Typen kann dann der Name »a« in einem Aufruf »m( a )« haben?

Welche Wirkung hat dann die Auswertung eines Aufrufs »m( a )«?

?   Übungsfrage 21 _

Was muß in dem folgenden Programm an der Stelle der Lücke stehen?

Programm mit Lücke

public final class Main
{

public static __________ m( final int i )
{ java.lang.System.out.println( i ); }

public static void main( final java.lang.String[] args )
{ m( 4 ); }}

?   Übungsfrage 22 _

Welche der beiden Anweisungen in der Methode »main« ist erlaubt?

Main.java

public final class Main
{

public static int m0()
{ return 12; }

public static void m1( final int i )
{ java.lang.System.out.println( i ); }

public static void main( final java.lang.String[] args )
{ m0( m1() ); /* Anweisung A */
m1( m0() ); /* Anweisung B */ }}

?   Übungsfrage 23 _

Was ist die Ausgabe des folgenden Programms?

Main.java

public final class Main
{

public static void m( final int i )
{ java.lang.System.out.println( i ); }

public static void main( final java.lang.String[] args )
{ final int a = 3; m( a ); }}

?   Übungsfrage 24 _

Was ist die Ausgabe des folgenden Programms?

Main.java

public final class Main
{

public static void m1( final int i )
{ java.lang.System.out.println( i ); }

public static int m2()
{ return 12; }

public static void main( final java.lang.String[] args )
{ m1( m2() ); }}

?   Übungsfrage 25 _

Was ist die Ausgabe des folgenden Programms?

Main.java

public final class Main
{

public static void m1( final int i )
{ java.lang.System.out.println( m2( i ) ); }

public static int m2( final int i )
{ return i + 2; }

public static void main( final java.lang.String[] args )
{ m1( 5 ); }}

?   Übungsfrage 26 _

Was ist die Ausgabe des folgenden Programms?

Main.java

public final class Main
{

public static void m( final int i )
{ java.lang.System.out.println( i ); }

public static void main( final java.lang.String[] args )
{ final int i = 1; final int j = 2; m( j ); }}

?   Übungsfrage 27 _

Was ist die Ausgabe des folgenden Programms?

Main.java

public final class Main
{

public static void m1( final int i )
{ java.lang.System.out.println( "3" ); }

public static int m2()
{ java.lang.System.out.println( "4" );
return 12; }

public static void main( final java.lang.String[] args )
{ m1( m2() ); }}

?   Übungsfrage 28 _

Was muß an der Stelle der Lücke stehen?

Methode
public static void print( final double __________ ){ java.lang.System.out.println( x ); }

?   Übungsfrage 29 _

Die Methode »m(java.lang.String)« sei definiert wie in dem folgenden Programm:

Main.java

public final class Main
{

public static double m( final java.lang.String x ){ return 2; }

public static void main( final java.lang.String[] args )
{ }}

Welchen Typ muß der Name »a« in »m( a )« haben, falls der Aufruf »m( a )« im Hauptprogramm verwendet werden soll werden soll.

Welchen Typ und Wert hat der Ausdruck »m( a )« (falls es keine Fehlermeldung gab)?

?   Übungsfrage 30 *

Welche Ausgabe erzeugt das folgende Programm?

Main.java

public final class Main

{ public static java.lang.String k( final double x ) { return "( " + x + " )"; }

public static void p( final double x )
{ java.lang.System.out.println( "x =" + k( x )); }

public static void main( final java.lang.String[] args ) { p( 2 ); }}

Protokoll

?   Übungsfrage 31 *

Die Methode »m()« sei folgendermaßen deklariert:

Methodendeklaration
public static void m() {}

Welchen Typ hat dann der Aufrufausdruck »m()« bei einem Aufruf dieser Methode?

Welchen Wert hat dann der Aufrufausdruck »m()« bei einem Aufruf dieser Methode?

Übungsaufgaben

Hinweise zu Übungsaufgaben ⃗

Wenn eine Methodendeklaration geschrieben werden soll, dann wird mit dieser Aufgabenstellung nie  ausgeschlossen, daß dabei auch Bibliotheksmethoden im Rumpf der zu schreibenden Methodendeklaration aufgerufen werden.

Es dürfen immer alle Namen aus Bibliotheken verwendet werden! 

Ausnahme: Wenn die Verwendung von Bibliotheksnamen in einer Aufgabenstellung ausdrücklich ausgeschlossen wurde.

 

Wenn eine Methodendeklaration geschrieben werden soll, dann wird mit dieser Aufgabenstellung nie  ausgeschlossen, daß dabei auch noch weitere (Hilfs-)methoden deklariert werden.

Man darf in diesem Kurs also immer auch mehr als eine  Methode schreiben, wenn es heißt „Schreiben Sie eine Methodendeklaration, die …!“.

/   Inkarnation eines Syntaxdiagramms ⃗

Schreiben Sie eine Parameterdeklaration mit dem Variablenmodifizierer »final«, dem Typ »double« und dem Bezeichner »k0«.

Vor und hinter Ihrer Lösung sollte eine Leerzeile stehen.

Syntax einer Parameterdeklaration
Parameterdeklaration
.----------------.
| .-----. v .-----. .------------.
----'--->( final )---'--->| Typ |--->| Bezeichner |--->
'-----' '-----' '------------'

/   Umbenennung eines Parameters (Refaktor) ⃗

Benennen Sie den Parameter der Methode »m« in dem folgenden Programm von »i« in »k« um.

Es soll sich um einen Refaktor handeln, das heißt, die Ausgabe soll nicht verändert werden.

Main.java

public final class Main
{

public static void m( final int i )
{ java.lang.System.out.println( i ); }

public static void main( final java.lang.String[] args )
{ final int a = 3; m( a ); }}

transcript
3

/   Refaktor Elimination von Parametern ⃗

Schreiben Sie das folgende Programm so um, daß es bei unverändertem Verhalten keine Parameterdeklarationen  mehr enthält! Im Hauptprogramm sollen also weiterhin zwei Methoden aufgerufen werden (und sonst nichts anderes gemacht werden), und die erste jener beiden Methoden soll »7« ausgeben, die zweite »3«. Fügen Sie Deklarationen für jene beiden Methoden zum Programme hinzu und entfernen Sie dafür die Deklaration der Methode »ausgeben«.

(Das Hauptprogramm  beginnt mit der Zeile, die das Wort »main« enthält.)

Main.java

public final class Main
{

public static void ausgeben( final int zahl )
{ java.lang.System.out.println( zahl ); }

public static void main( final java.lang.String[] args )
{ ausgeben( 7 ); ausgeben( 3 ); }}

Protokoll
7
3

/   Refaktor Elimination von Aufrufen ⃗

Schreiben Sie das folgende Programm so um, daß es bei unverändertem Verhalten keine Methodendeklarationen  außer der Deklaration der Methode »main« mehr enthält!

Main.java

public final class Main
{

public static void ausgeben( final int zahl )
{ java.lang.System.out.println( zahl ); }

public static void main( final java.lang.String[] args )
{ ausgeben( 7 ); ausgeben( 3 ); }}

Protokoll
7
3

/   Methode ⃖

Schreiben Sie eine Deklaration einer Methode, die einen Parameter vom Typ »int« hat und die Zeichenfolge »n« (also einen einzelnen Buchstaben) ausgibt.

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Rückgabe ⃖

Schreiben Sie eine Deklaration einer parameterlosen Methode namens »t«, welche den Wert »5« zurückgibt.

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Methode 1 ⃖

Schreiben Sie eine Deklaration einer Methode namens »print«, welche einen Ausdruck vom Typ »int« als Argument akzeptiert und dessen Wert ausgibt. Diese Methode soll keinen Wert liefern.

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Übungsaufgabe 0 ⃖

Main.java

public final class Main
{

public static void gruesse( final java.lang.String name )
{ java.lang.System.out.println( "Hallo " + name + "!" ); }

public static void main( final java.lang.String[] args )
{ gruesse( "Mia" ); }}

Protokoll
Hallo Mia!

Überarbeiten Sie das obenstehenden Hauptprogramm so, daß die folgende Ausgabe mit Hilfe der Methode »gruesse(java.lang.String)« erzeugt wird.

Bei dieser Aufgabe darf nur das Hauptprogramm  verändert werden. Das Hauptprogramm des Ergebnisses darf nur  Aufrufanweisungen enthalten, welche die Methode »gruesse(java.lang.String)« aufrufen. Es darf keine  Ausgabeanweisungen (kein »print«) enthalten.

Das Hauptprogramm  beginnt mit der Zeile, die das Wort »main« enthält.
Ausgabe
Hallo Mia!
Hallo Mia!
Hallo Mia!

/   Übungsaufgabe 1 ⃖

Main.java

public final class Main
{

public static void gruesse( final java.lang.String name )
{ java.lang.System.out.println( "Hallo " + name + "!" ); }

public static void main( final java.lang.String[] args )
{ gruesse( "Mia" ); }}

Protokoll
Hallo Mia!

Überarbeiten Sie das obenstehenden Hauptprogramm so, daß die folgende Ausgabe mit Hilfe der Methode »gruesse(java.lang.String)« erzeugt wird.

Bei dieser Aufgabe darf nur das Hauptprogramm  verändert werden. Das Hauptprogramm des Ergebnisses darf nur  Aufrufanweisungen enthalten, welche die Methode »gruesse(java.lang.String)« aufrufen. Es darf keine  Ausgabeanweisungen (kein »print«) enthalten.

Das Hauptprogramm  beginnt mit der Zeile, die das Wort »main« enthält.
Ausgabe
Hallo Mia!
Hallo Ben!
Hallo Lea!

/   Übungsaufgabe 2 ⃖

Überarbeiten Sie die Lösung der vorherigen Übungsaufgabe, indem Sie die Deklaration der Methode »gruesse(java.lang.String)« so verändern, daß die folgende Ausgabe erzeugt wird. (Hierbei darf das Hauptprogramm nicht verändert werden.)

Ausgabe
Guten Tag, Mia!
Guten Tag, Ben!
Guten Tag, Lea!

/   Übungsaufgabe 3 ⃖⃖ _

Überarbeiten Sie die Lösung der vorherigen oder der ersten Übungsaufgabe, indem Sie die Deklaration der Methode »gruesse(java.lang.String)« so verändern, daß der Parameter den Typ »int« hat und diese Methode nicht mehr mit Namen sondern mit Zahlen aufgerufen werden muß. Hierzu sollen auch die Aufrufe im Hauptprogramm so angepaßt werden, daß die Methode »gruesse« im Hauptprogramm jeweils einmal mit dem Argumentwert «0», «1» beziehungsweise «2» aufgerufen wird.

Man soll also den Typ der Parameter und Argumente nach »int« ändern.

Die Ausgabe soll dann folgendermaßen lauten:

Ausgabe zur Kontrolle
Guten Tag, 0!
Guten Tag, 1!
Guten Tag, 2!

Es geht bei dieser Aufgabe – und folgenden ähnlichen Aufgaben – darum, die im Text der Aufgabenstellung  beschriebene Änderung oder Programmierung vorzunehmen. Die dann gezeigte Ausgabe sollte erst danach  zur Kontrolle verwendet werden. Es geht nicht  darum, die gezeigte Ausgabe irgendwie  zu erzeugen.

/   Übungsaufgabe 4 ⃖⃖ _

Überarbeiten Sie die Lösung der vorherigen Übungsaufgabe, indem Sie in der Methode »gruesse(int)« zusätzlich noch den Wert «5» zurückgeben. Im Hauptprogramm soll der Wert jedes der drei Aufrufe der Methode »gruesse(int)« ausgeben werden.

Ausgabe zur Kontrolle
Guten Tag, 0!
5
Guten Tag, 1!
5
Guten Tag, 2!
5

/   Übungsaufgabe 5 ⃖⃖ _

Überarbeiten Sie die Lösung der vorherigen Übungsaufgabe, indem Sie nicht mehr den Wert «5», sondern den Wert des Parameters zurückgeben. (Im Vergleich zur vorigen Übungsaufgabe soll das Hauptprogramm hier nicht  verändert werden.)

Ausgabe zur Kontrolle
Guten Tag, 0!
0
Guten Tag, 1!
1
Guten Tag, 2!
2

/   Übungsaufgabe 6 ⃖⃖ _

Überarbeiten Sie die Deklaration der Methode »gruesse(int)« in der Lösung der vorigen Übungsaufgabe. Der Aufruf der Methode soll »Guten Tag, «, das Doppelte des Argumentwertes sowie ein Ausrufezeichen »!« ausgeben und das Dreifache des Argumentwertes zurückgeben. (Hier soll das Hauptprogramm nicht  verändert werden.)

Ausgabe zur Kontrolle
Guten Tag, 0!
0
Guten Tag, 2!
3
Guten Tag, 4!
6

/   Übungsaufgabe 7 ⃖⃖ _

Überarbeiten Sie die Lösung der vorherigen Übungsaufgabe so, daß eine Auswertung eines Aufrufs der Methode nichts mehr ausgibt und das Dreifache des Argumentwertes ergibt. Hierbei soll das Hauptprogramm nicht verändert werden.

Ausgabe zur Kontrolle
0
3
6

/   Übungsaufgabe 8

Reduzieren Sie die Redundanz (unnötige Wiederholungen) in dem folgenden Programm. Nach der Überarbeitung sollte »print« und »Sehr« höchstens noch jeweils zweimal  vorkommen. Die Ausgabe des Programms soll sich nicht verändern.

Main.java

public final class Main
{

public static void sg_fehrmann()
{ java.lang.System.out.println( "Sehr geehrter Herr Fehrmann!" ); }

public static void sg_lennartz()
{ java.lang.System.out.println( "Sehr geehrte Frau Lennartz!" ); }

public static void sg_schulte()
{ java.lang.System.out.println( "Sehr geehrter Herr Schulte!" ); }

public static void sg_salewski()
{ java.lang.System.out.println( "Sehr geehrter Herr Salewski!" ); }

public static void sg_dizdar()
{ java.lang.System.out.println( "Sehr geehrte Frau Dizdar!" ); }

public static void sg_de_vries()
{ java.lang.System.out.println( "Sehr geehrter Herr de Vries!" ); }

public static void sg_kerperin()
{ java.lang.System.out.println( "Sehr geehrter Herr Kerperin!" ); }

public static void sg_hiersekorn()
{ java.lang.System.out.println( "Sehr geehrte Frau Hiersekorn!" ); }

public static void sg_vos()
{ java.lang.System.out.println( "Sehr geehrte Frau Vos!" ); }

public static void sg_robben()
{ java.lang.System.out.println( "Sehr geehrter Herr Robbens!" ); }

public static void sg_lambers()
{ java.lang.System.out.println( "Sehr geehrter Herr Lambers!" ); }

public static void main( final java.lang.String[] args )
{ sg_fehrmann();
sg_lennartz();
sg_schulte();
sg_salewski();
sg_dizdar();
sg_de_vries();
sg_kerperin();
sg_hiersekorn();
sg_vos();
sg_robben();
sg_lambers(); }}

Protokoll
Sehr geehrter Herr Fehrmann!
Sehr geehrte Frau Lennartz!
Sehr geehrter Herr Schulte!
Sehr geehrter Herr Salewski!
Sehr geehrte Frau Dizdar!
Sehr geehrter Herr de Vries!
Sehr geehrter Herr Kerperin!
Sehr geehrte Frau Hiersekorn!
Sehr geehrte Frau Vos!
Sehr geehrter Herr Robbens!
Sehr geehrter Herr Lambers!

Bei dieser Aufgabe wurde die Anrede „Herr“/„Frau“ jeweils durch einen Zufallszahlengenerator  ausgewählt. Es ist also rein zufällig, daß hier „Herr“ zuerst und öfter auftritt als „Frau“.

/   Übungsaufgabe 9 ⃖ _

Schreiben Sie eine Deklaration einer Methode »schreibX«, die ein Argument vom Typ »double« akzeptiert und die Zeichenfolge »x = «, den Argumentwert ihres Aufrufs und ein Zeilenende ausgibt (in dieser Reihenfolge). Diese Methode soll keinen Wert zurückgeben.

Main.java

public final class Main
{

__________

public static void main( final java.lang.String[] args )
{ schreibX( 3.9 );
schreibX( 2.8 ); }}

transcript
x = 3.9
x = 2.8

/   Übungsaufgabe 10 ⃖ _

Schreiben Sie eine Deklaration einer Methode, die ein Argument vom Typ »double« akzeptiert und die Hälfte des Wertes jenes Arguments berechnet und zurückgibt. Diese Methode soll keine Wirkung haben.

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Ausgabe der Hälfte ⃖ _

Schreiben Sie nun eine weitere Methode zur Ausgabe der Hälfte ihres Parameterwertes. Diese Wirkmethode soll die in der vorigen Aufgabe geschriebene Berechnungsmethode verwenden, um die Hälfte zu ermitteln. (Diese weitere Methode soll nicht den Namen »main« haben. „Verwenden“ bedeutet hier „aufrufen“.)

Die Methoden sollen außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Identische Methode für den Typ »double« _

Unter einer „Identischen Methode für einen Typ “ verstehen wir eine Wertmethode mit einem Parameter, welche den ihr übergebenen Wert jenes Typs unverändert zurückgibt. Bei einer solchen identischen Methode ist der Parametertyp gleich dem Rückgabetyp.

Schreiben Sie eine Deklaration einer identischen Methode für den Typ »double«, die den Namen »id« hat. Diese Methode soll keine Wirkung haben.

Main.java

public final class Main
{

__________

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( id( 2.3 ));
java.lang.System.out.println( id( 8.7 )); }}

transcript
2.3
8.7

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Ausgabemethode für den Typ »double« ⃗

Unter einer „Ausgabemethode für einen Typ “ verstehen wir eine Methode, welche den ihr übergebenen Wert jenes Typs ausgibt. (Ohne „für“ und die Angabe eines Typs ist eine Ausgabemethode aber einfach nur eine Methode, die etwas ausgibt.)

Schreiben Sie eine Deklaration einer Methode »print«, die ein Argument vom Typ »double« akzeptiert und den Argumentwert ausgibt. Diese Methode soll keinen Wert zurückgeben und nichts anderes ausgeben als den Argumentwert.

Main.java

public final class Main
{

__________

public static void main( final java.lang.String[] args )
{ print( 4.11 ); java.lang.System.out.println();
print( 0.4 ); java.lang.System.out.println(); }}

transcript
4.11
0.4

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Leere Methode für den Typ »java.lang.String« ⃗

Unter einer „Leeren Methode für einen Typ “ verstehen wir eine Methode, welche den ihr übergebenen Wert jenes Typs akzeptiert, aber weder einen Wert noch eine Wirkung  hat.

Schreiben Sie eine Deklaration einer Methode »kommentar«, die ein Argument vom Typ »java.lang.String« akzeptiert. Der Aufruf dieser Methode soll keinen Wert haben. Die Auswertung eines Aufrufs dieser Methode soll keine Wirkung haben.

Main.java

public final class Main
{

__________

public static void main( final java.lang.String[] args )
{ kommentar( "Hier beginnt die Methode main." );
kommentar( "Hier endet die Methode main." ); }}

transcript
(keine Ausgabe)

Wenn es in Java  nicht schon die Möglichkeit gäbe, Kommentare in ein Programm hineinzuschreiben, könnten wir uns diese Möglichkeit also durch Definition einer Methode schaffen!

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Ausgabe des Nachfolgers

Schreiben Sie eine Deklaration einer Methode »nachfolgerAusgeben«, die einen Parameter vom Typ »int« hat und den Nachfolger des Parameterwertes und ein Zeilenende (in dieser Reihenfolge) ausgibt. Der Nachfolger einer Zahl ist die Zahl, welche um 1 größer ist als jene Zahl.

Wenn die Deklaration der Methode »nachfolgerAusgeben« in die Lücke des folgenden Programmgerüsts eingesetzt wird, sollte sich die unter »Ausgabe« gezeigte Ausgabe ergeben.

Main.txt

public final class Main
{

__________

public static void main( final java.lang.String[] args )
{ nachfolgerAusgeben( 5 );
nachfolgerAusgeben( 1 + 1 ); }}

Ausgabe
6
3

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Nachfolger einer Zahl

Schreiben Sie eine Deklaration einer Methode »s«, die einen Parameter vom Typ »int« hat. Der Wert eines Aufrufs dieser Methode soll um 1 größer sein als der Wert des Arguments jenes Aufrufs.

Wenn die Deklaration der Methode »s« in die Lücke des folgenden Programmgerüsts eingesetzt wird, sollte sich die unter »Ausgabe« gezeigte Ausgabe ergeben.

Main.txt

public final class Main
{

__________

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( s( 2 + 1 ));
java.lang.System.out.println( s( 7 )); }}

Ausgabe
4
8

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Geburtstagskarte (Refaktor, Abstraktion) ⃗

Ersetzen Sie die drei ersten Methodendeklarationen des folgenden Programms durch eine einzige Methodendeklaration für eine Methode mit dem Namen »geburtstag« und mit einem Parameter und passen Sie die Aufrufe im Hauptprogramm dann entsprechend an, so daß ein Programm entsteht, das weniger Wiederholungen aufweist, aber dieselbe Ausgabe erzeugt.

Main.java

public final class Main
{

public static void geburtstag25()
{ java.lang.System.out.println
( "Alles Gute zum " + 25 + ". Geburtstag!" ); }

public static void geburtstag50()
{ java.lang.System.out.println
( "Alles Gute zum " + 50 + ". Geburtstag!" ); }

public static void geburtstag75()
{ java.lang.System.out.println
( "Alles Gute zum " + 75 + ". Geburtstag!" ); }

public static void main( final java.lang.String[] args )
{ geburtstag25();
geburtstag50();
geburtstag75(); }}

transcript
Alles Gute zum 25. Geburtstag!
Alles Gute zum 50. Geburtstag!
Alles Gute zum 75. Geburtstag!

/   Geburtstagskarte (Spezialisierung) ⃗

Ändern Sie den Rumpf der Methode »geburtstag50()« aus der vorigen Übungsaufgabe so ab, daß sie die in der vorigen Übungsaufgabe geschriebene Methode »geburtstag« aufruft, um den Text »Alles Gute zum 50. Geburtstag!« auszugeben.

/   Numerale verdreifachen ⃖ _

Das folgende Programm berechnet das Dreifache des Numerales in einem java.lang.String-Objekt mit der Methode »treble« und gibt das erhaltene Ergebnis aus.

Die Methode »treble« liefert allerdings derzeit nur für den Argumentwert «"3"» das richtige Ergebnis.

Können Sie den Rumpf der Methode »treble« so überarbeiten, daß sie auch für andere Argumentwerte das richtige Ergebnis liefert?

Main.java

public final class Main
{

public static java.lang.String treble( final java.lang.String text )
{ return "9"; }

public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( treble( "3" )); }}

Protokoll
9

/   Kehrwert *

In Java  gibt es derzeit keine Methode zur Berechnung des Kehrwerts eines double-Wertes. Schreiben Sie eine Deklaration für eine solche parametrisierte Wertmethode!

(Der Kehrwert einer Zahl ‹ x › ist ‹ 1∕x ›, beispielsweise ist der Kehrwert von «2.0» gleich «0.5».)

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Ausgabe eines Kehrwerts *

Schreiben Sie eine Methode zur Ausgabe des Kehrwerts ihres Parameterwerts. Diese Wirkmethode soll die in der vorigen Aufgabe geschriebene Berechnungsmethode verwenden, um den Kehrwert zu ermitteln.

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Quadrieren *

Schreiben Sie eine Methode zur Berechnung des Quadrats einer double-Zahl. (Dabei dürfen alle Methoden der Standardbibliothek benutzt werden.)

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Quadratwurzel *

Schreiben Sie eine Methode zur Berechnung der Quadratwurzel einer double-Zahl. (Dabei dürfen alle Methoden der Standardbibliothek benutzt werden.)

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Refaktor (1) *

In dem folgenden Programm finden sich in der Methode »main« zwei Paare von Anweisungen, die einander fast gleich sind. Erstellen Sie eine Methode und rufen Sie diese Methode zwei Mal in geeigneter Weise auf, um schließlich wieder dasselbe Verhalten (die Ausgabe zweier Zufallszahlen, eine zwischen 0 und 1 und die nächste zwischen 0 und 10, mit dem Text »« davor) beobachten zu können, wie bei dem Originalprogramm, aber weniger Wiederholung im Quelltext zu haben.

Main.java

public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.lang.String text = "- ";
java.lang.System.out.println( text + java.lang.Math.random() );

final java.lang.String text1 = "- ";
java.lang.System.out.println( text1 + 10 * java.lang.Math.random() ); }}

transcript
- 0.17659304535012366
- 7.244582803799431

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Umrechnen *

Schreiben Sie eine Methode, welche eine Länge in Zentimeter ergibt, die ihr in Millimetern übergeben wurde.

Schreiben Sie eine Methode, welche in die andere Richtung umrechnet.

Rufen Sie beide Methoden im Hauptprogramm auf, um zu beobachten, ob sie richtige Ergebnisse liefern.

Die Methoden sollen außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

Zusatzaufgaben *

/   Verkürzung *

Schreiben Sie ein Programm, das die folgende Ausgabe auf die unten beschriebene Weise erzeugt.

Ausgabe
11910
11910 32251
11910
23141
23141 32251
23141
10312
10312 32251
10312
24170
24170 32251
24170
17233
17233 32251
17233
24947
24947 32251
24947

In der Ausgabe wird ein bestimmtes Muster mehrfach wiederholt. Das Muster wird aber nicht genau gleich wiederholt, sondern jedes Mal etwas verändert. Es gilt, dieses Muster zu erkennen und seine Ausgabe durch eine Methodendeklaration zu realisieren, in welcher das Veränderliche durch einen Parameter ausgespart ist. Alsdann soll die deklarierte Methode in »main« mehrfach aufgerufen werden, um die obige Ausgabe zu realisieren.

Wenn man diese Aufgabe so wie beabsichtigt gelöst hat, dann

/   Würfel *

Schreiben Sie eine Wertmethode »wuerfel(int)«, die eine ganzzahlige Pseudozufallszahl ergibt, die größer-gleich 1 und kleiner-gleich dem Wert ihres ganzzahligen Parameters ist. So soll das Ergebnis der Auswertung von "wuerfel( 3 )" beispielsweise die eine ganzzahlige Pseudozufallszahl zwischen »1« (einschließlich) und »3« (einschließlich) sein.

Zusatzanforderung Schreiben Sie eine Methodendeklaration für eine Wertmethode »wuerfel()«, die eine ganzzahlige Pseudozufallszahl ergibt, die größer-gleich »1« und kleiner-gleich »6« ist. Verwenden Sie dabei die zuvor deklarierte Methode »wuerfel(int)«.

Zweite Zusatzanforderung Schreiben Sie nun noch zwei Wirkmethoden »printWuerfel(int)« und »printWuerfel()«, welche die entsprechenden Wertmethoden aufrufen und das Ergebnis ausgeben.

Anmerkung Diese Übungsaufgabe gehört zum roten Faden „Würfeln“.

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Umrechnen *

Schreiben Sie eine Wirkmethode, welche eine Zeitdauer in Sekunden akzeptiert und diese dann in vollen Stunden, vollen Minuten und Sekunden ausgibt.

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Kippen *

Schreiben Sie eine int-Methode »kippen« welche für den Argumentwert 0 das Ergebnis 1 und für den Argumentwert 1 das Ergebnis 0 liefert. Im Rumpfe der Methodendeklaration sollen dabei nur »return«, »;«, Numerale, Parameternamen und Grundrechenarten verwendet werden.

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Zufallszahl *

Schreiben Sie eine Deklaration für eine Methode, welche eine double-Zufallszahl ergibt, die zwischen dem Wert ihres ersten Arguments (einschließlich) und ihres zweiten Arguments (ausschließlich) liegt.

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   Sinus in Grad *

Die in Java  vordefinerte Sinus-Methode interpretiert den Argumentwert als Angabe in Radiant  (dabei ist π/2 ein rechter Winkel). Schreiben Sie eine Deklaration einer Sinus-Methode, welche ihren Argumentwert als Angabe in Grad  versteht (dabei ist 90 ein rechter Winkel).

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

/   DIV und SPAN *

(Für Leser mit HTML-Kenntnissen) Schreiben Sie eine Methode »div«, welche ihren Argumenttext in DIV-Etiketten einschließt, und eine Methode »span«, welche ihren Argumenttext in SPAN-Etiketten einschließt, so daß der Aufruf »div( span( "alpha" )+ span( "beta" ))« beispielsweise die Zeichenfolge »<DIV><SPAN>alpha</SPAN><SPAN>beta<SPAN></DIV>« ergibt.

Die Methode soll außer dem im ersten Absatz Beschriebenen nichts anderes machen und nichts Überflüssiges enthalten.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723793 stefan_ram:723793 Einleitende Beispiele zur Deklaration von Parametern in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723793, slrprddef723793, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/einleitung_parameter_java