Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Also ich brauchte dieses set(),get() dingsda für eine Aufgabe, bei der ich allerdings nicht iwrklich weiter komme, ich poste hier mal die Aufgabenstellung und mein bisherigen Code:
Die Aufgabe:
Naja also meine Klasse Fraction sieht wie folgt aus:
Code:
public class Fraction
{
private int numerator, denumerator = 0;
public Fraction(int numerator, int denumerator)
{
this.numerator = numerator; //übergabe den Variablen bze deren Wert
this.denumerator = denumerator;
}
public int getNumerator()
{
return this.numerator;
}
public int getDenumerator()
{
return this.denumerator;
}
public void setNumerator(int numerator)
{
this.numerator = numerator;
}
public void setDenumerator(int denumerator)
{
this.denumerator = denumerator;
}
if (denumerator == 0)
{
System.out.println("Nenner Null")
//hier soll das Programm dann beendet werden, oder wieder an den den Punkt springen, wo die
//Eingabe stattfindet, in einer anderen Klasse
}
}
Und die Klasse, die diesen Aufrufen soll, sieht so aus:
Code:
class AufrufFraction
{
public static void main (String[] args)
{
int eingabenenner, eingabezaehler = 0;
int bruch;
SimpleInput eingabe = new SimpleInput();
System.out.println("Gib dden Zaehler ein!");
eingabezaehler = eingabe.nextInt();
System.out.println("Gib den Nenner ein!");
eingabenenner = eingabe.nextInt();
Fraction bruch = new Fraction(eingabezaehler, eingabenenner) //Hier rufe ich die Methode Fraction auf und
//übergebe meine eingegebenen Variablen
}
}
Ist das soweit richtig?
Also vor allem die Abbruchbedingung weiss ich nicht, also den Befehl (Zeile 34.1), mit dem man das abbricht und auch im 2. Teil, ob der Aufruf der Klasse(Zeile 17.2), die Übergabe der Werte richtig sind und der Rückgabewert sein muss bzw wird und wie ich den deklariere.
die if abfrage muss in eine Methode rein, am sinnvollsten in die setDenumerator methode, du solltest den Denumerator erst auf 0 überprüfen bevor du die exemplarvariable setzt
Ja ok, das stimmt, werde das gleich mal verbessern, aber wie mache ich das mit dem aufruf der methode?
also der aufruf der Klasse Fraction in der Klasse AufrufFraction???
Und klappen tut das auch, zumindest der Haupttteil.
Nur bei deinen beiden Zusätzen hat der ein bisschen Probleme, ich poste nochmal alles hier und die Fehlermeldung:
Achso, das ist nicht so wichtig, wäre aber interessant, wieso das nicht klappt.
Gruss Mattes
Also hier die Fehlermeldung:
und das is der Code:
Code:
class Test
{
public static void main (String[] args)
{
int eingabenenner, eingabezaehler = 0;
SimpleInput eingabe = new SimpleInput();
System.out.println("Gib dden Zaehler ein!");
eingabezaehler = eingabe.nextInt();
System.out.println("Gib den Nenner ein!");
eingabenenner = eingabe.nextInt();
Fraction bruch = new Fraction(eingabezaehler, eingabenenner); //Hier rufe ich Konstruktor auf
System.out.println(bruch.getNumerator);
bruch.setNumerator(4711);
System.out.println(bruch.getNumerator);
}
}
Code:
public class Fraction
{
private int numerator, denumerator = 0;
public Fraction(int numerator, int denumerator)
{
this.numerator = numerator; //übergabe den Variablen bze deren Wert
this.denumerator = denumerator;
}
public int getNumerator()
{
return this.numerator;
}
public int getDenumerator()
{
return this.denumerator;
}
public void setNumerator(int numerator)
{
this.numerator = numerator;
}
public void setDenumerator(int denumerator)
{
this.denumerator = denumerator;
if (denumerator == 0)
{
System.out.println("Nenner Null");
System.exit (1); //hier soll das Programm dann beendet werden, oder wieder an den den Punkt springen, wo die Eingabe stattfindet, in einer anderen Klasse
}
}
}
getNumerator ist eine Methode und daher mit Klammern aufzurufen. bruch.getNumerator spricht ein Feld, also eine Variable namens getNumerator an, die es aber in dieser Klasse nicht gibt (oder die nicht öffentlich zugänglich ist).