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.
ich bin derzeit dabei einen Taschenrechner zu programmieren. Jetzt soll ich bestimmte Programmteile in Klasse auslagern, weiß aber nicht wie, weil ich es nicht schaffe, mir Klassen anhand von Büchern irgendwie verständlich zu machen. Hier mal der Code:
Java:
import java.util.Scanner;
public class Calculator2 {
public static void main (String[] args)
{
boolean exit = false;
double currentResult = 0;
String lastoperator = "+";
System.out.println("Taschenrechner");
while (exit == false)
{
Scanner input = new Scanner(System.in);
String eingabe = input.next();
if (isStringADouble(eingabe))
{
double currentNumber = Double.parseDouble(eingabe);
if (lastoperator.equals("+"))
{
currentResult = currentResult + currentNumber;
lastoperator = "";
}
if (lastoperator.equals("-"))
{
currentResult = currentResult - currentNumber;
lastoperator = "";
}
if (lastoperator.equals("*"))
{
currentResult = currentResult * currentNumber;
}
if (lastoperator.equals("/"))
{
currentResult = currentResult / currentNumber;
}
}
else if (eingabe.equals("+") || eingabe.equals("-") || eingabe.equals("*") || eingabe.equals("/"))
{
lastoperator = eingabe;
}
else if (eingabe.equals("="))
{
System.out.println("===============");
System.out.println("\t"+currentResult);
System.out.println("===============");
}
else if (eingabe.equals("c"))
{
break;
}
else if (eingabe.equals("h"))
{
System.out.println("Erlaubte Zeichen: 0 - 9 | + | - | * | /");
System.out.println("'c' um den Taschenrechner zu schließen.");
}
}
System.out.println("Exit!");
}
public static boolean isStringADouble(String param)
{
try
{
Double.parseDouble(param);
return true;
}
catch (Exception e)
{
return false;
}
}
public class Number {
}
public class Operator {
}
public class Command {
}
}
Unten sind ja bereits die Klasse. Könnt ihr mir da irgendwelche Tipps geben?
Mal vorweg, wenn du das Prinzip von Klassen nicht verstanden hast, solltest du nicht objektorientiert Programmieren
Bei den ganzen if-Abfragen, die du verwendest, würde mir spontan das State-Pattern einfallen. Damit könntest du die einzelnen arithemetischen Berechnungen in eigene Klassen auslagern.
Bei WIki ist das ganz nett beschrieben, vorallem die Funktionsweise, die dahinter steckt.
Wenn du nicht mit Klassen arbeiten kannst bzw. miteinander verknüpfen kannst solltest du mal unter dem Stichwort
java klassen verbinden oder verknüpfen mal was angucken. Ich gib dir mal ein Tipp: Du kannst Klassen instanzieren um an die Methoden, der instanzierten Klasse ranzukommen