Variablen Übergabe von eingelesenen Variablen in neue Klasse

F.lol

Mitglied
Ich habe folgendes Problem:
Ich soll in meinem Kurs ein Programm schreiben, in dem ich einen Bruch einlese, diesen in einer anderen Klasse kürze und dann wgekürzt wieder ausgebe.
irgendwie läuft das aber nicht so wie ich mir das vorstelle. Ich kann die Werte einlesen und Variablen zuordnen aber ich schaffe es nicht, diese Werte für die andere Klasse zu verwenden.
Kann mir da vlt. jemand helfen? Mein Programm sieht bisher so aus:

Java:
 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Haupt {
	

	

	public static void main(String[] args) throws IOException {
		BufferedReader reader = new BufferedReader(new
                InputStreamReader(System.in));
                System.out.print("Bitte geben sie den Zähler ein ....: ");
                String StringA = reader.readLine();
                int Zaehler = Integer.parseInt(StringA);
                BufferedReader reader2 = new BufferedReader(new
                InputStreamReader(System.in));
                System.out.print("Bitte geben sie den Nenner ein ....: ");
                String StringB = reader.readLine();
                int Nenner = Integer.parseInt(StringB); 
                new Bruch (Zaehler, Nenner);
	}
}
	


class Bruch 
{
			public int Zaehler;
			public int Nenner;
	public Bruch (int Zaehler, int Nenner)
	{
		this.Zaehler = Zaehler;
		this.Nenner = Nenner;
	}
	public Bruch Clone ()
	{
		Bruch Result;
		Result = new Bruch (
				this.Zaehler,
				this.Nenner);
		return Result;
	}
	public void kuerzen()
	{
		int ggt = GGTLoop (Zaehler, Nenner);
		Zaehler = Zaehler / ggt;
		Nenner = Nenner / ggt;
		return;
	}
	protected int GGTLoop(int A, int B) 
	{
		return 0;
	}
	public void ausgeben ()
	{
		 String  u;
			u = (new Integer(Zaehler)).toString();
			String b;
			b = (new Integer(Nenner)).toString();
			System.out.println("Der gekürzte Bruch lautet " + u + "/" + b);
	}
}
 
T

Topper81

Gast
Hi,
du rufst ja die Methode "kuerzen" gar nicht auf aus deinem Hauptprogramm.
Ausserdem solltest du da einen Rückgabewert zurück geben.

Beispiel:
hinter
Java:
new Bruch (Zaehler, Nenner);

Java:
rufst du die Mehtode "kuerzen" auf:
Bruch.kuerzen

Zudem würde ich (um es einfach zu halten) noch zwei Methoden schreiben. (Du könntest es auch mit einer Methode machen und könntest dann ein Objekt zurück geben aber das lassen wir jetzt mal)...
Also schreibst du zwei Methoden in deiner "Bruch" - Klasse z.B.
Java:
int getNenner()
{
return this.Nenner
}

int getZaehler
{
return this.getZaehler
}

eine weitere (allerdings unschöne) Alternative ist, da die du Nenner und Zähler ja sowiso schon public hast, kannst du diese im Hauptprogramm auch gleich abfragen mit
Java:
bruch.Zaehler
bruch.Nenner

hoffe das hilft dir weiter...
 

Momolino

Mitglied
In wiefern funktioniert das Übergeben der Werte denn nicht?

Ich würde es ein bisschen anders machen als von dir beschrieben. Du erzeugst ja direkt eine Instanz der Klasse Bruch und gibst dieser den Nenner und den Zähler mit.
Ich würde zwar auch eine Instanz erstellen, aber die Methode kuerzen() gesondert mit eben diesem Objekt und den zwei Werten aufrufen.

Also meinetwegen Bruch bruch = new Bruch();
Und dann die Methode mit bruch.kuerzen(nenner, zaehler); aufrufen.

Und dass in GGTLoop return 0 steht so gewollt?

Edit:
Zu langsam. :rtfm:
 

Final_Striker

Top Contributor
um ehrlich zu sein...warum da return 0 da steht versteh ich auch nicht...das hab ich aus der Folie von meinem Prof so übernommen. macht wenig sinn gell? Ich hab mich das auch gefragt aber dachte mir das wird wohl einen von mir nicht ersichtlichen Grund haben.

Ich würde mal einfach sagen, weil ihr die Methode selbst implementieren sollt.
 

F.lol

Mitglied
gleich mal zwei sachen: was heißt denn bitte dass wir das implementieren sollen? Hä?
und das andere ich habs jetzt so geändert:
Java:
public static void main(String[] args) throws IOException {
		BufferedReader reader = new BufferedReader(new
                InputStreamReader(System.in));
                System.out.print("Bitte geben sie den Zähler ein ....: ");
                String StringA = reader.readLine();
                int Zaehler = Integer.parseInt(StringA);
                BufferedReader reader2 = new BufferedReader(new
                InputStreamReader(System.in));
                System.out.print("Bitte geben sie den Nenner ein ....: ");
                String StringB = reader.readLine();
                int Nenner = Integer.parseInt(StringB); 
                Bruch bruch =new Bruch (Zaehler, Nenner);
                bruch.kuerzen (Zaehler, Nenner);
                bruch.ausgeben (Zaehler, Nenner);
allerdings musste ich dann hierfür diese beiden zeilen:
Java:
public void kuerzen()

public void ausgeben()
in diese hier ändern
Java:
public void kuerzen(int Zaehler, int Nenner)

public void ausgeben(int Zaehler, int Nenner)
und laufen tuts deswegen totzdem nicht. :(
beim ausführen im debugger läuft das main und dann erscheint in der Console die Fehlermeldung:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at Bruch.kuerzen(Haupt.java:59)
at Haupt.main(Haupt.java:23)
 

F.lol

Mitglied
Hört sich so an, als würde irgendwo durch 0 geteilt werden.

Was steht denn konkret in der kuerzen() Methode?

und so wie das aussieht denk ich mal: Da GGTLoop ja return 0 ausgibt und dann Nenner und Zaehler durch GGT geteilt werden teilen die sich beide durch 0 oder?
und was heißt denn dieses implementieren???

also GGTLoop errechnet mir den Größten Gemeinsamen Teiler der Werte Zaehler und Nenner. Das Programm is fehlerfrei geschrieben. und dann wird eben Zaehler durch den GGT geteilt und Nenner durch den GGT geteilt damit ist der Bruch dann auf sein Minimum gekürzt.
 

Final_Striker

Top Contributor
was heißt denn bitte dass wir das implementieren sollen?

Das heißt, dass du in der Methode den Code schreiben sollst, der den größten gemeinsamen Teiler von a und b berechnet.


allerdings musste ich dann hierfür diese beiden zeilen:

Das ist falsch, die Methoden sollten schon so bleiben wie sie sind.


und laufen tuts deswegen totzdem nicht. :(

Weil du hier :

Java:
        Zaehler = Zaehler / ggt;
        Nenner = Nenner / ggt;

durch 0 teilst, und das ist nicht erlaubt.
 

F.lol

Mitglied
Wenn ich aber die beiden Methoden lasse wie sie sind, unterringelt mir Eclipse aber
Java:
bruch.kuerzen (Zaehler, Nenner);
bruch.ausgeben (Zaehler, Nenner);
diese beiden Anweisungen mit der Warnung: The method Kuerzen/ausgeben is not aplliciable for the arguments (int, int)

okay und das GGT Loop Programm kritzel ich dann einfach da rein wo jetzt noch return 0 steht und "returne" dann einfach den eigentlich errechneten wert?!
 

Gossi

Bekanntes Mitglied
Wenn ich aber die beiden Methoden lasse wie sie sind, unterringelt mir Eclipse aber
Java:
bruch.kuerzen (Zaehler, Nenner);
bruch.ausgeben (Zaehler, Nenner);
diese beiden Anweisungen mit der Warnung: The method Kuerzen/ausgeben is not aplliciable for the arguments (int, int)

Deine Methoden müssten dann auch so aussehen:

Java:
public void kuerzen(int zaehler, int nenner) { 
    //todo something
}

public void ausgeben(int zaehler, int nenner) {
   //todo something else
}


okay und das GGT Loop Programm kritzel ich dann einfach da rein wo jetzt noch return 0 steht und "returne" dann einfach den eigentlich errechneten wert?!

Richtig, dann kannste auch mit dem GGT-Loop arbeiten....
 

F.lol

Mitglied
YES :)
läuft
aber eins versteh ich noch nicht. Warum müssen bei den Methoden die Variablen klein geschrieben werden???
also (int zaehler, int nenner) also warum läuft das Programm nicht wenn man diese beiden groß schreibt?

und nochwas:
was genau passiert hier:
Java:
int getNenner()
{
return this.Nenner;
}
			 
int getZaehler ()
{
return this.Zaehler;
}
 
Zuletzt bearbeitet:

Gossi

Bekanntes Mitglied
YES :)
läuft
aber eins versteh ich noch nicht. Warum müssen bei den Methoden die Variablen klein geschrieben werden???
also (int zaehler, int nenner) also warum läuft das Programm nicht wenn man diese beiden groß schreibt?

Es läuft auch wenn man beides groß Schreibt, dann lag der fehler woanders, aber generell schreibt man in Java Methoden und Variablen in camelCase.
Also

public void trinkBier()
public void rechnen()
public void holMirMaNeFlascheBier()

und genauso:

int zahl
int bierFlaschen
int maximalErreichbarePunkte

usw.


PS:
Ich glaub ich brauch nachher nen Feierabend Bier xD
 

Gossi

Bekanntes Mitglied
Hmm, kann net mehr editieren, dann halt in nem neuen posting:
YES :)
läuft
aber eins versteh ich noch nicht. Warum müssen bei den Methoden die Variablen klein geschrieben werden???
also (int zaehler, int nenner) also warum läuft das Programm nicht wenn man diese beiden groß schreibt?

und nochwas:
was genau passiert hier:
Java:
int getNenner()
{
return this.Nenner;
}
			 
int getZaehler ()
{
return this.Zaehler;
}

Hier gibts du die (hoffentlich private gesetzten) Variablen deiner Klasseninstanz zurück, da du normalerweise von außen nicht auf private Variablen zugreifen kannst, dafür gibt es die getter() und setter() methoden, da es normalerweise "Regel"-Konform ist Klassenvariablen private zu setzen um den zugriff von außen zu beschränken.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
S Übergabe von Arrays an Methoden Java Basics - Anfänger-Themen 20
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
D Methode mit Übergabe double und Rückgabe String Java Basics - Anfänger-Themen 2
L Methoden Übergabe von Parameter Java Basics - Anfänger-Themen 3
K Java Problem mit Übergabe von argumenten Java Basics - Anfänger-Themen 3
J Übergabe von Parametern an andere Methoden Java Basics - Anfänger-Themen 5
D Probleme mit der Übergabe einer BorderPane Java Basics - Anfänger-Themen 2
R Methoden Übergabe von einer Methodenvariable Java Basics - Anfänger-Themen 3
M Übergabe von Werten Java Basics - Anfänger-Themen 10
arjoopy Kapselung Übergabe von Objekten aus ArrayList Java Basics - Anfänger-Themen 4
C Erste Schritte Übergabe von Klassen Java Basics - Anfänger-Themen 2
C Methoden Objekte und Methode und Übergabe Java Basics - Anfänger-Themen 4
O Übergabe in eine andere Klasse Java Basics - Anfänger-Themen 3
M Übergabe / Rückgabe Java Basics - Anfänger-Themen 6
S Kapselung Objekt bei Übergabe an Konstruktor nicht initalisiert Java Basics - Anfänger-Themen 3
T Problem bei Übergabe von Variablen Java Basics - Anfänger-Themen 1
fLooojava Probleme bei der Übergabe einer Variable Java Basics - Anfänger-Themen 14
R Vererbung Übergabe von Variablen der Superklasse an Subklasse mit "extends" Java Basics - Anfänger-Themen 5
S OOP Übergabe eines Objektes? Java Basics - Anfänger-Themen 1
fLooojava OOP Übergabe/Output in Textfield Java Basics - Anfänger-Themen 4
U Übergabe von Objekten Java Basics - Anfänger-Themen 0
J ArrayList toString() Übergabe Fehler Java Basics - Anfänger-Themen 2
S Übergabe Java Basics - Anfänger-Themen 14
S Klassen Array: Übergabe von Klasse zur Main Java Basics - Anfänger-Themen 8
A NullPointerException bei Übergabe eines Array Java Basics - Anfänger-Themen 8
feardorcha Methodenaufruf Übergabe- und Rückgabewert Java Basics - Anfänger-Themen 5
D Klassen Problem - Übergabe an Konstruktor von Superklasse Java Basics - Anfänger-Themen 2
D Objekt Übergabe Java Basics - Anfänger-Themen 12
M Array Übergabe Java Basics - Anfänger-Themen 17
W Übergabe Stringzeilen von serieller Schnittstelle in andere Klasse Java Basics - Anfänger-Themen 3
B Übergabe Dateiname (String) an andere Klasse Java Basics - Anfänger-Themen 4
P Methoden Übergabe von Werten Java Basics - Anfänger-Themen 7
M Fragen zu Methoden (void/return), Übergabe von Parametern Java Basics - Anfänger-Themen 3
A Übergabe von Variablen zu Paintmethode Java Basics - Anfänger-Themen 2
N Array Übergabe Java Basics - Anfänger-Themen 9
L Klassen Parameter Übergabe Java Basics - Anfänger-Themen 12
A OOP Übergabe eines Wertes an den enum Konstruktor Java Basics - Anfänger-Themen 12
O Übergabe von Variablen Java Basics - Anfänger-Themen 9
Darth Simple Übergabe eines Strings an eine Methode Java Basics - Anfänger-Themen 3
A Frage zur Übergabe von Strings Java Basics - Anfänger-Themen 9
N Übergabe problem Java Basics - Anfänger-Themen 6
M Übergabe von VM Argumenten Java Basics - Anfänger-Themen 4
J Übergabe einer ArrayList an mehrere Threads Java Basics - Anfänger-Themen 3
E Übergabe von werten aus einem JDialog Java Basics - Anfänger-Themen 4
J Übergabe eines Arrays als Parameter Java Basics - Anfänger-Themen 2
S Übergabe von Frame-Objekt - kritisch? Java Basics - Anfänger-Themen 7
L JTabbedPane, richtige Übergabe von Tabs Java Basics - Anfänger-Themen 18
Z BigInteger Methoden und deren Übergabe Java Basics - Anfänger-Themen 3
K Übergabe einer im EventListener definierte variablen Java Basics - Anfänger-Themen 2
M Übergabe von Variablen in eine Klasse Java Basics - Anfänger-Themen 13
G Wieso ist eine String-Übergabe keine by-reference-Zuweisung? Java Basics - Anfänger-Themen 7
M Problem bei der Übergabe von Werten Java Basics - Anfänger-Themen 7
G Übergabe von Parametern an JSP Java Basics - Anfänger-Themen 3
S Veränderung von Protected Daten durch Übergabe? Java Basics - Anfänger-Themen 3
K Übergabe der Variable für Farbe Java Basics - Anfänger-Themen 6
G List<.> nach Übergabe vergleichen? Java Basics - Anfänger-Themen 3
G Übergabe Variablen von Servlet zu JSP? Java Basics - Anfänger-Themen 4
R Beiß mir die Zähne aus an der Request-Parameter-Übergabe! Java Basics - Anfänger-Themen 10
lin Übergabe an JPanel-Klasse Java Basics - Anfänger-Themen 3
S NullPointerException bei Array-Übergabe Java Basics - Anfänger-Themen 3
D Übergabe von Variablen Java Basics - Anfänger-Themen 11
W Variabeln Übergabe Java Basics - Anfänger-Themen 14
F Großes Problem: Vector-Übergabe Java Basics - Anfänger-Themen 7
F Übergabe Vaterframe mit this und Fehlermeldung. Java Basics - Anfänger-Themen 2
D Fragen zu Methoden und Übergabe von Werten Java Basics - Anfänger-Themen 4
G Übergabe von Variablenwerten zwischen Methoden Java Basics - Anfänger-Themen 4
D Problem bei Übergabe von Werten an eine Methode Java Basics - Anfänger-Themen 2
H Übergabe eines Wertes an eine Bean --> Bean leer Java Basics - Anfänger-Themen 6
T Array-Übergabe Java Basics - Anfänger-Themen 7
M Windows Pfad-Übergabe.. Java Basics - Anfänger-Themen 6
S String mit Konstruktor (per Übergabe) initialisieren Java Basics - Anfänger-Themen 10
P Schlüsselworte Zählen und Zuweisen von eingelesenen Zahlen Java Basics - Anfänger-Themen 1
T Erste Schritte Eingelesenen Satz - Wörter und Leerzeichen getrennt in 2x Array's Java Basics - Anfänger-Themen 7
S Eingelesenen String vergleichen Java Basics - Anfänger-Themen 2
S Rückgabe eines eingelesenen 2D Arrays aus Klasse heraus Java Basics - Anfänger-Themen 3
Schandro Eingelesenen Text wieder ausgeben Java Basics - Anfänger-Themen 9
M Anzahl von Wörter in einer eingelesenen Datei Java Basics - Anfänger-Themen 10
F Ziffern einer eingelesenen Zahl ausgeben bzw. bearbeiten Java Basics - Anfänger-Themen 4
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
T Variablen Java Basics - Anfänger-Themen 1
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
M Aufsummieren von variablen Wertegrößen Java Basics - Anfänger-Themen 17
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
ashi Variablen aufrufen Java Basics - Anfänger-Themen 17
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben