Java Anfänger... Finde fehler nicht

Status
Nicht offen für weitere Antworten.

winZard

Mitglied
Ich möchte folgendes Machen. Aber irgendwie komme ich nicht so recht weiter.

Ich währe euch sehr dankbar wenn ihr mir helfen würdet

Klasse Bruch
-Zähler : int
-Nenner : int
+ invertieren () // Vertauschen von Nenner und Zähler
+ quadrieren() // Quadriert den Bruch
+ showBruch() // Format Zähler / Nenner
+ showBruchNett() // in Form von Zähler, nächste Zeile ----- darunter Nenner


Klasse Rechenumgebung
+ multipliziere (Bruch, Bruch) //Rückgabewert ist Bruch
+ divideren (Bruch, Bruch) // Rückgabewert ist Bruch
+ main

[highlight=Java]public class bruch
{
private int z;
private int n;

public void setz(int z)
{
this.z = z;
}

public void setn(int n)
{
this.n = n;
}

public int getZ()
{
return this.z;
}

public int getN()
{
return this.n;
}

public void invertiren()
{
this.n = z;
this.z = n;
}

public void quadrieren()
{
double nenner = this.n*this.n;
double zaler = this.z*this.z;
}

public void showBruch()
{
System.out.println("Bruch: ("+n+"/"+z+")");
}

public void showBruchNett()
{
System.out.println("n \n ----- \n z");
}
}[/highlight]
[highlight=Java]public class Rechenumgebung
{
public static void main(String[] args)
{
BRUCH bruch = new BRUCH(10, 8);
bruch.bruch2(10, 6);
System.out.println(getnenner());
System.out.println(getzaler());
}

public multi();
{
this.multzaler = z*10;
this.multinenner = n*5;
}
public int getzaler()
{
return this.multzahler;
}

public int getnenner()
{
return this.multinenner;
}

public divi();
{
this.divizaler = z/10;
this.divinenner = n/5;
}
public int getzaler2()
{
return this.divizahler;
}

public int getnenner2()
{
return this.divinenner;
}


}
[/highlight]
 
S

SlaterB

Gast
solange du keine Fehler/ Probleme nennst, wie soll man da helfen?

generell der Tipp:
int/int wird in Java abgerundet,

3/5 = 1
77/78 = 0

edit:
aus der main:
System.out.println(getnenner());

getnenner() ist eine nicht-statische Methode, die kannst du doch nicht aus einer statischen Methode heraus aufrufen, du brauchst ein Objekt,

getnenner() enthät einen Verweis auf ein Klassenattribut, aber es ist gar keins definiert?
und warum ist diese Methode nicht in Bruch definiert?

> public multi();
> {

Semikolon? Rückgabewert? soll das ein Konstruktor sein?
dann groß geschrieben und für welche Klasse?
 
Zuletzt bearbeitet von einem Moderator:

winZard

Mitglied
Zeile 11: Public multi();

invalid method declaration; return type required

Welchen return type muss ich angeben?
 
S

SlaterB

Gast
na den den du zurückgeben willst, wenn nix, dann void

siehe auch edit in vorherigen post
 

andre111

Bekanntes Mitglied
Bei Klassennamen den ersten Buchstaben groß schreiben. Verwende statt einzelne Buchstaben konkrete Variablennamen (zaehler, nenner...)
lg André
 
S

SlaterB

Gast
wie kannst du
> Wie mach ich ein Objekt?
fragen und gleichzeitig in deinem Code schon
> BRUCH bruch = new BRUCH(10, 8 );
stehen haben?
abgesehen von falscher Groß-/ Kleinschreibung kennst du doch anscheinend den new-Operator

ganz kurz:
Objekte erzeugen mit new,
nicht-statische Methoden am Objekt aufrufen, so wie du es mit
> bruch.bruch2(10, 6);
auch schon kannst (abgesehen davon, dass es keine Methode bruch2 gibt..)

statische Methoden, falls überhaupt benötigt, an der Klasse aufrufen:
Klassenname.methode(parameter);

alles weitere macht hier zu erklären keinen Sinn, schau dir das grundlegende Kapitel in einem Lehrbuch an,
jedes Thema wäre wahrscheinlich noch mal zu wiederholen,
z.B.
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 3 Klassen und Objekte
+
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 6 Eigene Klassen schreiben

wenn du da ein Beispiel nicht verstehst, oder es danach nicht in eine Klasse umsetzen kannst,
ja dann kann man hier diskutieren, aber dann nimm bitte auch auf die Grundlagen bezug nehmen

'ich weiß von nix + bitte erklären' macht weniger Spass ;)

edit:
> Ach jetzt verstehe ich!

umso besser
 
S

Spacerat

Gast
In dem Code ist zwar 'ne Menge nicht so Toll. Aber ein richtig dicker unverzeihlicher Fehler befindet sich z.B. hier:[highlight=java]public void invertiren()
{
this.n = z;
this.z = n;
}[/highlight]Hier wird der Bruch nämlich nicht invertirt, sondern 1 (z = n). Denn n == this.n und z == this.z
willman werte tauschen, geht das nur über 'ne Hilfsvariable[highlight=java]public void invertiren()
{
int n = this.n;
this.n = this.z;
this.z = n;
}[/highlight]
 

andre111

Bekanntes Mitglied
oder bei ganzzahlen mit xor verknüpfungen:
Code:
public void invertieren()
{
    n ^= z;
    z ^= n;
    n ^= z;
}
 

0x7F800000

Top Contributor
Oder hier zwei verschiedene einzeilermethoden:
[highlight=Java]
int x=0;
int y=1;
System.out.println("x: "+x+" y: "+y);
x=y+0*(y=x);
System.out.println("x: "+x+" y: "+y);
x+=y-(y=x);
System.out.println("x: "+x+" y: "+y);
[/highlight]
...aber das sind alles blödsinnige rechenintensive hacks, das was Spacerat geschrieben hat ist das einzig richtige, lediglich seine Aussage
geht das nur über 'ne Hilfsvariable
trifft nicht ganz zu, wie man sieht ;)
 

FatFire

Bekanntes Mitglied
Gibt ja auch Anhänger der Methode, so Operationen generell nicht direkt an lebenden Objekten zu gestalten, sondern als Rückgabewert ein neues Objekt zu erhalten (ich finde sowas irgendwie schicker, aber kann da nichts zu den Wertungen der Profis sagen).

Dann müsste da natürlich (müsste eigentlich sowieso) noch ein vernünftiger Konstruktor hin:
[highlight=Java] public Bruch(int z, int n) {
this.z = z;
this.n = n;
}[/highlight]
Invertieren würde dann so laufen:
[highlight=Java] public Bruch getInvertiert() {
return new Bruch(n, z);
}[/highlight]
Also Du erhältst einen neuen Bruch zurück. Wenn Du mit dem weiterrechnen möchtest, musst Du natürlich den auch zuweisen:
[highlight=Java]bruch = bruch.getInvertiert();[/highlight]
Vereinfacht einige Operationen ungemein.
Achja, und falls Du mal kürzen willst:
[highlight=Java] private static int getGGT(int a, int b) {
if (b == 0)
return a;
else
return getGGT(b, a % b);
}

public int getGGT() {
return Bruch.getGGT(z, n);
}

public Bruch gekuerzt() {
int ggt = getGGT();
return new Bruch(z / ggt, n / ggt);
}[/highlight]
Größter gemeinsamer Teiler wird über rekursiv laufenden euklidschen Algorithmus berechnet und damit dann gekürzt. Als ergebnis erhält man natürlich wieder als neuen Bruch das Ergebnis.

Naja, und Darstellungsmethoden sollten nicht direkt in diese Klasse gepackt werden (meine da showBruch() und showBruchNett()), besser ist es da doch, toString() zu überschreiben und die Darstellung woanders zu machen.

Gruß
FatFire

PS: Oh man, mir ist langweilig, kann Developer_X nicht mal einen neuen Thread aufmachen? Der Mensch will doch unterhalten werden.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
K Buchstabenzähler Java (Anfänger) Java Basics - Anfänger-Themen 35
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
_Zabuza_ Erste Schritte Wie am effektivsten Java lernen als Anfänger? Java Basics - Anfänger-Themen 12
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
K Java Anfänger Java Basics - Anfänger-Themen 5
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
R Erste Schritte Materialien für Java-Anfänger Java Basics - Anfänger-Themen 7
V Erste Schritte Anfänger: Ausführen eines Java-Programms Java Basics - Anfänger-Themen 5
L Verzinsungsprogramm (Java-Anfänger) Java Basics - Anfänger-Themen 3
I if/else Statements Java Anfänger Java Basics - Anfänger-Themen 14
V Erste Schritte Java-Anfänger braucht Hilfe bei Arrays Java Basics - Anfänger-Themen 19
I Java, Application, Eclipse (Anfänger) Java Basics - Anfänger-Themen 1
M Java Anfänger - Video Tutorial Reihe (DEUTSCH) Java Basics - Anfänger-Themen 11
B Compiler-Fehler Ein Java-Eclipse-Anfänger geht auf Reisen... Java Basics - Anfänger-Themen 10
X Projekt Java Anfänger Java Basics - Anfänger-Themen 28
M Tipps für einen Java-Anfänger Java Basics - Anfänger-Themen 5
S Java für Anfänger: Probleme mit read() Java Basics - Anfänger-Themen 20
W Erste Schritte OOP-Lektüre für Anfänger/Umsteiger von Clipper auf Java Java Basics - Anfänger-Themen 6
J Welches Java-Videotutorial für Anfänger empfehlenswert? Java Basics - Anfänger-Themen 7
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 3
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 2
P Java anfänger tutorial gesucht Java Basics - Anfänger-Themen 12
B Java für Anfänger Java Basics - Anfänger-Themen 7
R Java-Anfänger-Projekt-Begleiter gesucht Java Basics - Anfänger-Themen 18
T Collections Java Anfänger - Array-Struktur vollkommen unklar Java Basics - Anfänger-Themen 2
K Java Anfänger und paar Fragen=D Java Basics - Anfänger-Themen 7
S Viele Fragen von einem Anfänger in Java Java Basics - Anfänger-Themen 2
T Fragen vom Java Anfänger Java Basics - Anfänger-Themen 8
J Java Anfänger .jar file erstellen Java Basics - Anfänger-Themen 9
C Java programm mit Datenbank für Anfänger Java Basics - Anfänger-Themen 21
S Datentypen Die verschiedene Java Datentypen [Anfänger] Java Basics - Anfänger-Themen 8
S Java Anfänger - Tutorial Frage Java Basics - Anfänger-Themen 10
L Java Programier Aufgaben für Anfänger Java Basics - Anfänger-Themen 5
B in & out class problem (java anfängeR) Java Basics - Anfänger-Themen 5
K Java anfänger Java Basics - Anfänger-Themen 2
V Java-Anfänger... und dann? Java Basics - Anfänger-Themen 18
J Anfänger-Problem: Rechnen mit Java Java Basics - Anfänger-Themen 3
C Anfänger in Java Java Basics - Anfänger-Themen 7
Spin Konto (großes Projekt für anfänger in Java ^^) Java Basics - Anfänger-Themen 7
S Blutiger Java Anfänger braucht dringend Hilfe Java Basics - Anfänger-Themen 4
B ich bin ein Anfänger in java Java Basics - Anfänger-Themen 7
S Total Anfänger in Java Java Basics - Anfänger-Themen 2
M ich bin java-anfänger! Java Basics - Anfänger-Themen 15
T .für Anfänger - Struktur des Quellcodes in Java? Java Basics - Anfänger-Themen 8
M PircBot Java Anfänger Problem Java Basics - Anfänger-Themen 18
N kennt ihr ein gutes java forum für anfänger? Java Basics - Anfänger-Themen 5
E Java-Anfänger Java Basics - Anfänger-Themen 8
R Anfänger-Tutorial Java + Eclipse Java Basics - Anfänger-Themen 4
M Java-Anfänger Aufgabe Java Basics - Anfänger-Themen 3
M Java-Anfänger sucht Lektüre Java Basics - Anfänger-Themen 5
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben