Erste Schritte Instanzmethoden Rechnen (Bruch)

Zipe

Mitglied
Hey Leute,

Ich möchte Instanzmethoden für eine Klasse "Bruch" erstellen. Hierbei soll der Bruch mit einer anderen Zahl multipliziert, dividiert, addiert, subtrahiert werden.

Nun soll den jeweiligen Methoden nur einen Parameter vom Typ Bruch übergeben werden, und es soll eine neue Instanz vom Typ Bruch zurückgegeben werden, die das Ergebnis enthält.

Hier die Klasse "Bruch"
Java:
public class Bruch {
	int zaehler;
	int nenner;
	Bruch nBruch = new Bruch();

hier der Methodenansatz
Java:
	public Bruch mul(nBruch){
		int faktor;
		faktor = IOTools.readInteger("Faktor?: ");
		Bruch neuerBruch = new Bruch();
		neuerBruch = nBruch * faktor;
		return neuerBruch;
	}

Hier zeigt mir eclipse aber einige Fehlermeldungen. Ich verstehe nicht ganz, wie ich es hinkriege, dass ich einen Parameter vom Typ Bruch übergeben kann. Dachte das würde klappen, wenn ich oben eine variable nBruch erzeuge.

Irgendwelche Tipps?

Mfg
 

Ruzmanz

Top Contributor
Du hast bei deinem Parameter keinen Typ angegeben:

Java:
    public Bruch mul(Bruch nBruch){
            int faktor;
            faktor = IOTools.readInteger("Faktor?: ");
            Bruch neuerBruch = new Bruch();
            neuerBruch = nBruch * faktor;
            return neuerBruch;
        }
 
Zuletzt bearbeitet:

Zipe

Mitglied
Ah stimmt. :oops:

Hatte auch allgemein einen Fehler drin. Brauche garkeine Variable "faktor", sondern ich sollte den Parameter Bruch mit dem neuen Bruch multiplizieren.

Jetzt habe ich allerdings das Problem, dass ich Bruch * Bruch multiplizieren will und er das mit dem Typ "Bruch" nicht kann.

Java:
public Bruch mul(Bruch nBruch){
		Bruch neuerBruch = new Bruch();
		neuerBruch = neuerBruch * nBruch; // "operator * is undefined for [...]"
		return neuerBruch;


Jemand ne Idee, wie ich die beiden Brüche multipliziert bekomme?
 

eRaaaa

Top Contributor
Wie multipliziert man denn Brüche? Du hast doch jeweils einen Zähler und Nenner der beiden Bruch-Objekten, damit sollte sich das umsetzen lassen (int * int geht schließlich).

ich denke auch nicht dass du ein neues Objekt erstellen sollst in der Methode, sondern es bezieht sich auf den bruch auf den du die Methode aufrufst (this!)
 

Zipe

Mitglied
Also muss ich den zaehler von "nBruch" mit dem zaehler von "neuerBruch" multiplizieren (beim nenner das gleiche)?

Wenn ich keinen neuen Bruch instanziere, welche Brüche multipliziere ich dann miteinander? Ich weiß schon was du meinst, da ich ja in der Testklasse nachher irgendwas wie "testBruch.mul(nBruch)" haben werde ...
Aber wie schreibe ich das? ???:L (das würde mir wahrscheinlich auch bei meinen anderen Methoden helfen, da ich jeweils den "aktuellen Bruch" in den Methoden weiterbearbeiten soll.
 

Zipe

Mitglied
und in welche Variable speichere ich das dann?
Kriege dann immer die Fehlermeldung "Can not convert from int to 'Bruch'" ... Da ich ja versuche das ganze wieder in einem Bruch zu speichern, der dann ausgegeben werden soll.
 

ThIwOl

Mitglied
Jeder Bruch hat doch eine Zähler und Nenner-Variable. Darin speicherst du das Ergebnis.
Sprich: this.zaehler = this.zaehler * nBruch.nenner;
 

nomuri

Aktives Mitglied
Also mal langsam. Du benötigst eine Zaehler und eine Nenner variable. Da speicherst du dann jeweils einen Wert rein aus dem Objekt was du anlegst.. z.B.


Java:
Bruch b1 = new Bruch(1,2);

Somit hast du jetzt einen Bruch 1/2

Jetzt möchtest du den b1 mit einem anderen Bruch multiplizieren.
Sprich du legst einen 2. Bruch an
Java:
Bruch b2 = new Bruch(1,4);
Dann multiplizierst du die beiden miteinander.
Java:
b1.multipliziere(b2);


Jetzt gehst du in deine Bruch Klasse und dort hast du den aktuellen Bruch b1 zerteilt in Zaehler und Nenner. Dein Konstruktor muss natürlich dementsprechend aufgebaut sein.

Dann schreibst du deine multipliziere Methode.
Z.B. so:

Java:
public void multipliziere(Bruch bruch){

this.zaehler = bruch.zaehler * this.zaehler;
this.nenner = bruch.nenner * this.nenner;

}

Bruch bruch ist der übergebene Bruch b2 und this.zaehler & this.nenner sind die Bestandteile des Bruchs b1
 

Zipe

Mitglied
Ah okay :)

und gebe dann wieder nBruch aus? oder welchen Bruch.

Eine Frage noch. Das mit dem "this." ... habe in meinen Methoden jetzt fast alle mit nem neu instanzierten Bruch geschrieben, obwohl ich ja den "aktuellen" Bruch benutzen soll (wusste aber nicht genau was das heißen soll)

wie würde man denn zB das hier jetzt schreiben?

Java:
public double wert() {
		double dBruch;
		Bruch neuerBruch = new Bruch();
		dBruch = zaehler / nenner;
		return dBruch;
	}

(versuche hier den Bruch als double-Wert zurückzugeben)

Edit: Die Methoden soll ich erst woanders aufrufen, dafür muss halt erstmal die Klasse stimmen. Muss ich oben in der Klasse zB. sowas deklarieren?

Java:
public class Bruch {
	int zaehler;
	int nenner;
	Bruch bruch = new Bruch();
 
Zuletzt bearbeitet:

nomuri

Aktives Mitglied
Hast du überhaupt mal richtig gelesen was ich dir geschrieben habe?
Und wieso einen Bruch als double Wert? Du möchtest den Bruch in eine Dezimalzahl umwandeln oder was? Dann kannst du auch direkt mit Dezimalzahlen rechnen.. wofür dann der Aufwand über die Brüche?

Zum ausgeben kannst du dir einfach ne toString methode schreiben...
 

Zipe

Mitglied
Ja ich habs mir durchlesen.

Also b1 und b2 würde ich dann in einer Testmethode initialisieren. Und darauf dann meine Methoden anwenden.

z.B. b1.mul(nBruch);

Allerdings müssen dafür meine Methoden ja erst richtig sein?!
Das mit dem double-Wert ist reine Spielerei, hat keinen tieferen Sinn, außer halt zu lernen Instanzmethoden zu schreiben.

Edit: Ja die toString Methode habe ich schon geschrieben
 
Zuletzt bearbeitet:

Zipe

Mitglied
Java:
public class Bruch {
	int zaehler;
	int nenner;
	Bruch nBruch = new Bruch();

	public Bruch(int zaehler, int nenner) {
		this.zaehler = zaehler;
		this.nenner = nenner;

	}

	public Bruch() {
	}

	public String toString() {
		String bruch = "zaehler/nenner";
		return bruch;
	}

	public double wert() {
		double dBruch;
		Bruch neuerBruch = new Bruch();
		dBruch = zaehler / nenner;
		return dBruch;
	}
	public Bruch mul(Bruch nBruch){
		this.zaehler = this.zaehler*nBruch.zaehler;
		this.nenner = this.nenner*nBruch.zaehler;
		return nBruch;
	}
}
 

nomuri

Aktives Mitglied
Wofür hast du zaehler und nenner variable und dazu nochn Bruch?
Ist einfach nicht nötig.. ich würde es so machen.

Java:
public class Bruch {


	private int zaehler;
	private int nenner;
	
	
	public Bruch(int zaehler, int nenner)
	{
		this.zaehler = zaehler;
		this.nenner = nenner;
	}
	
	
	public void multipliziere(Bruch b)
	{
		
		this.zaehler *= b.zaehler;
		this.nenner *= b.nenner;
		
	}
	
	
	public String toString()
	{
	
		return this.zaehler + " / " + this.nenner;
			
	}

}

und in der Main methode/Main klasse dann

Java:
public class BruchTest {

	
	public static void main(String[] args) {
		
		
		
		Bruch b1 = new Bruch(1,2);
		Bruch b2 = new Bruch(1,4);
		
		
		b1.dividiere(b2);
		System.out.println(b1.toString());
		
		

	}

}

Das ist quasi genau das was ich dir in meinem Post vorhin gesagt habe.
 
Zuletzt bearbeitet:

Zipe

Mitglied
Danke dir! Würde meine "mul" Methode denn so wie ich sie geschrieben hab auch funktionieren?

Wie würdest du die Methode "wert" schreiben?
 

nomuri

Aktives Mitglied
Deine Methode gibt nBruch zurück. Warum? Du schreibst deine Ergebnisse ja in this.zaehler und this.nenner und nicht in nBruch..

Was soll deine Methode wert denn genau machen? Einfach die Umrechnung in Dezimal?
Nimmst den aktuellen Bruch bestehend aus this.zaehler und this.nenner und rechnest den Bruch in Dezimal um. Kannst du mit oder ohne returnwert machen.. bleibt dir frei gestellt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
P Hilfe bei Instanzmethoden Java Basics - Anfänger-Themen 24
J Instanzmethoden Java Basics - Anfänger-Themen 8
S Probleme mit Instanzmethoden / Klassen Java Basics - Anfänger-Themen 20
C Rechnen mit Brüchen, ist meine Lösung soweit richtig? Java Basics - Anfänger-Themen 4
C Kann mir jemand sagen warum ich nicht mal rechnen kann ? Java Basics - Anfänger-Themen 32
Liroyd Methode mit Objektvariabel rechnen? Java Basics - Anfänger-Themen 6
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
Zeppi Geteilt rechnen Java Basics - Anfänger-Themen 2
D Mit Objekten rechnen, Textfield, JavaFX, Noob Java Basics - Anfänger-Themen 8
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
L Datentypen Rechnen und abrunden mit double Java Basics - Anfänger-Themen 7
S Hamster Simulator rechnen lernen Parameter int Java Basics - Anfänger-Themen 6
D Operatoren Mit Objekten rechnen Java Basics - Anfänger-Themen 7
P Rechnen mit Brüchen - objektorientierte Programmierung Java Basics - Anfänger-Themen 18
S Rechnen mit MaxValue Java Basics - Anfänger-Themen 7
L Rechnen mit Objekten Java Basics - Anfänger-Themen 3
W Erste Schritte Rechnen mit Schleifen? Denkanstoß gesucht Java Basics - Anfänger-Themen 15
W Seltames Problem bei Rechnen mit BigIntegers Java Basics - Anfänger-Themen 2
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
S Dezimalzahlen rechnen Java Basics - Anfänger-Themen 3
kilopack15 Rechnen mit großen Zahlen Java Basics - Anfänger-Themen 6
D Rechnen mit numerischen Datentyp Frage Java Basics - Anfänger-Themen 16
E Best Practice Exaktes Rechnen mit (Pseudo-)Rationalen/Realen Zahlen. Operations Zuweisung für (eigene) Klassen Java Basics - Anfänger-Themen 3
1 Mit Java Rechnen Java Basics - Anfänger-Themen 10
T Einstieg in "grafische Progammierung" + Rechnen in Flussdiagramm Java Basics - Anfänger-Themen 2
W Variablen float rundet beim Bruch rechnen Java Basics - Anfänger-Themen 3
N Oracle SQL mit Zwischenergebnis rechnen Java Basics - Anfänger-Themen 2
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
S Double mithilfe eines Scanners so einlesen, dass ich damit rechnen kann Java Basics - Anfänger-Themen 4
J Char-Rechnen Java Basics - Anfänger-Themen 8
A Rechnen mit Set/Get? Java Basics - Anfänger-Themen 2
M Mit Werten aus Arrays in anderen Methoden rechnen? Java Basics - Anfänger-Themen 3
J Mit Datum rechnen Java Basics - Anfänger-Themen 11
F Erste Schritte [GUI] Dual in Dezimal rechnen Java Basics - Anfänger-Themen 5
D Erste Schritte Rechnen mit Brüchen Java Basics - Anfänger-Themen 13
D rechnen mit Stunden und Minuten Java Basics - Anfänger-Themen 14
N mit Werten aus einer mysql datenbank in java rechnen Java Basics - Anfänger-Themen 17
G Rechnen mit Long Variablen Java Basics - Anfänger-Themen 4
N Probleme beim Rechnen mit Integer und double Java Basics - Anfänger-Themen 4
W Variablen Rechnen mit "char" Java Basics - Anfänger-Themen 2
Joew0815 Compiler-Fehler Unexpected Type - Problem mit Variablen rechnen Java Basics - Anfänger-Themen 7
F Werte aus Tabelle vergleichen/rechnen Java Basics - Anfänger-Themen 5
C Mit Potenzen rechnen "Problem" Java Basics - Anfänger-Themen 3
M Mit Array rechnen Java Basics - Anfänger-Themen 9
T Rechnen in Arrays Java Basics - Anfänger-Themen 11
B von Ergebniss weiter rechnen Java Basics - Anfänger-Themen 3
S Rechnen mit Datum bzw. Uhrzeit Java Basics - Anfänger-Themen 3
S Datentypen Operatoren und Ausdrücke (formel richtig rechnen) Java Basics - Anfänger-Themen 8
N Mit long rechnen Java Basics - Anfänger-Themen 2
K Übungsblatt 13 Aufgabe 6 (Rechnen) Java Basics - Anfänger-Themen 12
C Mit Gleitkommazahlen rechnen Java Basics - Anfänger-Themen 20
T Rechnen mit Operatoren Java Basics - Anfänger-Themen 2
W Mit (char) rechnen Java Basics - Anfänger-Themen 3
F Mit Arrays rechnen Java Basics - Anfänger-Themen 12
H Datentypen Rechnen mit signed Byte-Array - unsinged byte Java Basics - Anfänger-Themen 3
B mit benutzereingaben rechnen Java Basics - Anfänger-Themen 4
L Bruch rechnen Java Basics - Anfänger-Themen 29
B mit Datum rechnen Java Basics - Anfänger-Themen 10
D Rechnen mit int Array Java Basics - Anfänger-Themen 9
M mit Uhrzeit rechnen Java Basics - Anfänger-Themen 11
T mit Winkel & Sinus rechnen / sin(30°)=2,5 Java Basics - Anfänger-Themen 7
A Rechnen mit big integer Java Basics - Anfänger-Themen 29
L Mit matrizen rechnen Java Basics - Anfänger-Themen 19
W Probleme mit double rechnen Java Basics - Anfänger-Themen 4
J Datentypen Rechnen mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 3
K mit einer int rechnen Java Basics - Anfänger-Themen 10
M Warum -48 rechnen? Java Basics - Anfänger-Themen 3
K Java Code rechnen Java Basics - Anfänger-Themen 7
F Rechnen mit komplexen Zahlen Java Basics - Anfänger-Themen 23
C Datentypen Unklarheiten beim Rechnen Java Basics - Anfänger-Themen 5
W Modulo rechnen Java Basics - Anfänger-Themen 3
H Datentypen Rechnen und Runden Java Basics - Anfänger-Themen 2
S Rechnen mit Zeitangaben Java Basics - Anfänger-Themen 5
Binary.Coder Doppeltes Hashing verläuft in "Endlosscheife" beim rechnen per Hand Java Basics - Anfänger-Themen 8
F Mit Anzahl Startparametern rechnen Java Basics - Anfänger-Themen 17
T mit List<Integer> rechnen Java Basics - Anfänger-Themen 9
O einfaches rechnen mit zahlen Java Basics - Anfänger-Themen 4
K Stunden zusammen Rechnen Java Basics - Anfänger-Themen 4
T mit Typen Date rechnen Java Basics - Anfänger-Themen 6
S mit Werten aus 2D-Array rechnen Java Basics - Anfänger-Themen 32
J Anfänger-Problem: Rechnen mit Java Java Basics - Anfänger-Themen 3
J Mit Java exp Rechnen ? Java Basics - Anfänger-Themen 4
P Mit double und BigDecimal rechnen Java Basics - Anfänger-Themen 6
K Wie zerlege Ich einen String zum Rechnen? Java Basics - Anfänger-Themen 3
D Rechnen mit zwei Klassen Java Basics - Anfänger-Themen 19
J Mit Zeitzonen rechnen! Java Basics - Anfänger-Themen 3
G Float schneidet nach dem Rechnen auf eine Stelle ab Java Basics - Anfänger-Themen 9
L Eingeben Rechnen Ausgeben - Leider nicht so einfach Java Basics - Anfänger-Themen 31
G Mit tastatureingaben rechnen Java Basics - Anfänger-Themen 10
B Großer Java bug beim rechnen? Java Basics - Anfänger-Themen 66
S mit Strings rechnen Java Basics - Anfänger-Themen 16
D mit request.getParameter("x") rechnen Java Basics - Anfänger-Themen 3
T mit byte rechnen. ? Java Basics - Anfänger-Themen 8
MrTical Zahlen einlesen um damit zu rechnen Java Basics - Anfänger-Themen 5
Safado modulo rechnen Java Basics - Anfänger-Themen 5
F mit Dualzahlen rechnen Java Basics - Anfänger-Themen 5
J Rechnen mit Dualzahlen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben