P
pask
Gast
hallo,
ich lerne gerade java und speziell objektorientierte programmierung
zur übung habe ich eine bruchklasse geschrieben, welche einen bruch darstellt, den größten gemeinsamen teiler berechnet und sich kürzen kann:
und hier eine 2. klasse, welche diese bruchklasse verwendet, hat ein paar hilfsmethoden zum einlesen der zähler und nenner und verwendet diese.
meine frage:
ist das so schon objektorientierte programmierung oder wie kann ich das verbessern?
MfG. =)
ich lerne gerade java und speziell objektorientierte programmierung
zur übung habe ich eine bruchklasse geschrieben, welche einen bruch darstellt, den größten gemeinsamen teiler berechnet und sich kürzen kann:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Bruch
{
// Attribute
private int zaehler, nenner, i, ggT, kzaehler, knenner;
// Methoden
public void setZaehler(int zaehler) // Paramaterübergabe aus BruchMain/Read
{
if (zaehler >= 0)
{
this.zaehler = zaehler; // Parameterwert wird an Attribut "zaehler" übergeben
}
else
{
System.out.println("Keine negativen Zahlen moeglich!");
System.exit(0);
}
}
public void setNenner(int parameter)
{
if (parameter >= 0)
{
this.nenner = parameter;
}
else
{
System.out.println("Keine negativen Zahlen moeglich!");
System.exit(0);
}
}
public int getZaehler()
{
return this.zaehler;
}
public int getNenner()
{
return this.nenner;
}
public int ggT()
{
// Vergleich der Teilermengen
for (this.i = 1; this.i <= this.zaehler; this.i++)
{
if ((this.zaehler % this.i == 0) && (this.nenner % this.i == 0))
{
this.ggT = this.i;
}
}
return this.ggT;
}
public void kuerzen()
{
if (this.ggT == 1 || this.zaehler == 0 || this.nenner == 0)
{
System.out.println("Der Bruch ist nicht kuerzbar!");
}
else
{
this.kzaehler = this.zaehler / this.ggT;
this.knenner = this.nenner / this.ggT;
}
}
public int getkZahler()
{
return this.kzaehler;
}
public int getKNenner()
{
return this.knenner;
}
}
und hier eine 2. klasse, welche diese bruchklasse verwendet, hat ein paar hilfsmethoden zum einlesen der zähler und nenner und verwendet diese.
Java:
public class BruchMain
{
static BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String s = "";
private static int readZaehler() throws IOException
{
System.out.print("Zaehler eingeben: ");
return Integer.parseInt(input.readLine());
}
private static int readNenner() throws IOException
{
System.out.print("Nenner eingeben: ");
return Integer.parseInt(input.readLine());
}
public static void main(String[] args) throws IOException
{
char repeat = 0;
String s = "";
do
{
Bruch br = new Bruch();
br.setZaehler(readZaehler());
br.setNenner(readNenner());
br.ggT();
br.kuerzen();
System.out.println("Der groeßte gemeinsame Teiler von " + br.getZaehler() + "/"
+ br.getNenner() + " ist: " + br.ggT());
System.out.println("Bruch in gekuerzter Form: " + br.getkZahler() + "/" + br.getKNenner());
System.out.print("Erneut einen Bruch eingeben? (Wiederholen mit 'j' oder 'J'): ");
s = input.readLine();
repeat = s.charAt(0);
} while (repeat == 'j' || repeat == 'J');
}
}
meine frage:
ist das so schon objektorientierte programmierung oder wie kann ich das verbessern?
MfG. =)