Programmteile in Klassen auslagern

dane

Mitglied
Hallo,

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.

State pattern - Wikipedia, the free encyclopedia

Allerdings würde ich dir im Moment eher ans Herz legen den Sinn der Objektorientung zu verinnerlichen 😉
 
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 😉
 

Neue Themen


Zurück
Oben