b2.erweitere(v);
description
Transcript of b2.erweitere(v);
b2.erweitere(v);
class testeBruch
class Bruch
public void erweitere(int n) { zaehler = zaehler * n; nenner = nenner * n;}
int zaehler = 0;int nenner = 1;
Aufruf einer Methode eines Objektes vom Typ „Bruch“
int v = 3;
class Bruch
public void erweitere(int n) { zaehler = zaehler * n; nenner = nenner * n;}
int zaehler = 0;int nenner = 1;
Bruch (int a, int b) { zaehler = a; nenner = b;}
Bruch b1 = new Bruch(2,7);
class testeBruch
KonstruktorDie Konstruktor-Methode besitzt den gleichen Namen wie die Klasse und wird als erste Methode aufgerufen, wenn ein Objekt der betreffenden Klasse mit dem „new“-Befehl erzeugt wird.
Eine besondere Methode: der Konstruktor
b1.zaehler = 3;
public int findeGGT(int a, int b) { int z = a; // Waehle den kleineren Wert if (b < a) { z = b; } // Finde die gemeinsamen Teiler von a und b int t = 0; for (int i = 1; i < z + 1; i++) { if ( ((a%i)==0) & ((b%i)==0) ) { t = i; } // Gib den groessten gemeinsamen Teiler zurück return t;}
Eine Methode zum Ermitteln des größten gemeinsamen Teilers
public class Bruch {int zaehler = 0;
int nenner = 1;
// Konstruktor Bruch(int a, int b) { zaehler = a; if (b!= 0) { nenner = b; } else { nenner = 1; } }
// Nun kommen die restlichen Methoden
Die Klasse Bruch
public void zeigeDich() { System.out.println("Zaehler = " + zaehler); System.out.println("Nenner = " + nenner); }
public void erweitere(int x) { zaehler = zaehler * x; nenner = nenner * x; }
public void bildeKehrwert() {int dummy = nenner;nenner = zaehler;zaehler = dummy;
}
public int bildeGGT(int a, int b) { int z = a; // Waehle den kleineren Wert fuer z if (b < a) { z = b; } // Finde die gemeinsamen Teiler von a und b int t = 0; for (int i=1; i < z+1; i++) { if ( ((a%i)==0) & ((b%i)==0) ) { t = i; } } return t; } public void kuerze() { int ggT = bildeGGT(zaehler, nenner); zaehler = zaehler / ggT; nenner = nenner / ggT; }
// Im nächsten Abschnitt passiert etwas NEUES.// Beim Aufruf einer Methode wird nicht einfach
nur eine// Zahl oder eine Variable übergeben, sondern ein
Objekt.// Das sieht so aus:// b3 = b1.multipliziere(b2);// Was passiert hier?// Der Bruch b1 wird mit dem Bruch b2 multipliziert// und das Ergebnis dem Bruch b3 zugewiesen.
public Bruch multipliziere(Bruch multiplikator) { Bruch ergebnis = new Bruch(1,1); ergebnis.zaehler = zaehler * multiplikator.zaehler; ergebnis.nenner = nenner * multiplikator.nenner; ergebnis.kuerze(); return ergebnis; } public Bruch dividiere(Bruch dividend) { Bruch ergebnis = new Bruch(1,1); ergebnis.zaehler = zaehler * dividend.nenner; ergebnis.nenner = nenner * dividend.zaehler; ergebnis.kuerze(); return ergebnis; }
public int bildeKGN(int nenner1, int nenner2) { int ergebnis = 1; ergebnis = nenner1 * nenner2; ergebnis = ergebnis / bildeGGT(nenner1, nenner2); return ergebnis; }
public Bruch addiere(Bruch summand) { Bruch ergebnis = new Bruch(1,1); int kgn = 1; int faktor1 = 1; int faktor2 = 1;
kgn = bildeKGN(nenner, summand.nenner); faktor1 = kgn / nenner; faktor2 = kgn / summand.nenner;
zaehler = zaehler * faktor1; nenner = kgn; summand.zaehler = summand.zaehler * faktor2; summand.nenner = kgn; ergebnis.zaehler = zaehler + summand.zaehler; ergebnis.nenner = kgn; ergebnis.kuerze(); return ergebnis; }
public Bruch subtrahiere(Bruch subtrahend) {
Bruch ergebnis = new Bruch(1,1);
Bruch dummy _= new Bruch(-1 * subtrahend.zaehler,
subtrahend.nenner);
ergebnis = this.addiere(dummy);
return ergebnis; }