|
Übergabe bzw. Rückgabe von Objekten Auch Objekte können an Methoden übergeben bzw. von Methoden zurückgegeben werden. Es ist hierbei nur notwendig, die entsprechende Referenz anzugeben. Beispiel: public class Brch01 { // Attribute int zaehler,nenner; // Konstruktor zur Eingabe von Zähler und Nenner Brch01(int z,int n) { zaehler = z; nenner = n; return; } // Konstruktor ohne Eingabe von Zähler und Nenner Brch01() { zaehler = 0; nenner = 1; return; } // Methode zur Multiplikation Brch01 mult(Brch01 b) { Brch01 brch = new Brch01(); brch.zaehler=zaehler*b.zaehler;
brch.nenner=nenner*b.nenner;
return(brch);
}
void ausgabe()
{
System.out.println(zaehler + "/" + nenner);
return;
}
// Methode main
public static void main(String args[])
{
int br1z,br1n,br2z,br2n;
br1z = Integer.valueOf(args[0]).intValue();
br1n = Integer.valueOf(args[1]).intValue();
br2z = Integer.valueOf(args[2]).intValue();
br2n = Integer.valueOf(args[3]).intValue();
// Erzeugen der Instanzen
Brch01 bb1 = new Brch01(br1z,br1n);
Brch01 bb2 = new Brch01(br2z,br2n);
Brch01 bb3 = new Brch01();
// Ausgabe der Startwerte
bb1.ausgabe();
bb2.ausgabe();
bb3.ausgabe();
bb3=bb1.mult(bb2);
// Ausgabe des Ergebnisses
bb3.ausgabe();
System.exit(0);
}
}
ergibt beim Aufruf durch
java Brch01 2 3 3 4
Als Ausgabe erhält man:
2/3
3/4
0/1
6/12
Möchte man den Aufruf der Methode symetrisch gestalten, muß mit Klassenmethoden gearbeitet
werden. In diesem Fall werden die Referenzen aller Objekte als Parameter übergeben.
Beispiel:
public class Brch02
{
// Attribute
int zaehler,nenner;
// Konstruktor zur Eingabe von Zähler und Nenner
Brch02(int z,int n)
{
zaehler = z;
nenner = n;
return;
}
// Konstruktor ohne Eingabe von Zähler und Nenner
Brch02()
{
zaehler = 0;
nenner = 1;
return;
}
// Methode zur Multiplikation
static Brch02 mult(Brch02 b1,Brch02 b2)
{
Brch02 brch = new Brch02();
brch.zaehler=b1.zaehler*b2.zaehler;
brch.nenner=b1.nenner*b2.nenner;
return(brch);
}
void ausgabe()
{
System.out.println(zaehler + "/" + nenner);
return;
}
// Methode main
public static void main(String args[])
{
int br1z,br1n,br2z,br2n;
br1z = Integer.valueOf(args[0]).intValue();
br1n = Integer.valueOf(args[1]).intValue();
br2z = Integer.valueOf(args[2]).intValue();
br2n = Integer.valueOf(args[3]).intValue();
// Erzeugen der Instanzen
Brch02 bb1 = new Brch02(br1z,br1n);
Brch02 bb2 = new Brch02(br2z,br2n);
Brch02 bb3 = new Brch02();
// Ausgabe der Startwerte
bb1.ausgabe();
bb2.ausgabe();
bb3.ausgabe();
bb3=mult(bb1,bb2);
// Ausgabe des Ergebnisses
bb3.ausgabe();
System.exit(0);
}
}
ergibt beim Aufruf durch
java Brch02 2 3 3 4
Als Ausgabe erhält man:
2/3
3/4
0/1
6/12
|
|
|