110 likes | 250 Views
Aufruf einer Methode eines Objektes vom Typ „Bruch“. class Bruch. class testeBruch. int zaehler = 0; int nenner = 1;. int v = 3;. public void erweitere(int n) { zaehler = zaehler * n; nenner = nenner * n; }. b2.erweitere(v);. Eine besondere Methode: der Konstruktor. class Bruch.
E N D
Aufruf einer Methode eines Objektes vom Typ „Bruch“ class Bruch class testeBruch int zaehler = 0; int nenner = 1; int v = 3; public void erweitere(int n) { zaehler = zaehler * n; nenner = nenner * n; } b2.erweitere(v);
Eine besondere Methode: der Konstruktor class Bruch Konstruktor Die 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. int zaehler = 0; int nenner = 1; Bruch (int a, int b) { zaehler = a; nenner = b; } class testeBruch Bruch b1 = new Bruch(2,7); public void erweitere(int n) { zaehler = zaehler * n; nenner = nenner * n; } b1.zaehler = 3;
Eine Methode zum Ermitteln des größten gemeinsamen Teilers publicintfindeGGT(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; }
Die Klasse Bruch publicclass Bruch { intzaehler = 0; intnenner = 1; // Konstruktor Bruch(inta, int b) { zaehler= a; if(b!= 0) { nenner= b; } else{ nenner= 1; } } // Nun kommen die restlichen Methoden
publicvoidzeigeDich() { System.out.println("Zaehler = " + zaehler); System.out.println("Nenner = " + nenner); } publicvoid erweitere(int x) { zaehler= zaehler * x; nenner= nenner * x; } publicvoidbildeKehrwert() { intdummy = 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; }