vorwort:
die eigentliche Main.java besteht nur aus wenigen zeilen. hier wird eigentlich nur die eingabe gelesen, und im späteren verlauf an andere Klassen weitergegeben. es ist mir schon klar, dass es übertrieben ist, für jeden kleinen schritt eine eigene klasse zu schreiben, aber es steht doch in der spec., dass man die sache objektorientiert und als package lösen soll :-).

1)als erstes wird die eingabe gelesen, und an Check.CheckStr übergeben

    Check.CheckStr:
wie der name schon andeutet, wird hier dein string auf mögliche fehler überprüft.
die strucktur der datei ist eigentlich leicht verständlich. es wird überprüft, ob genau so viele klammern geschlossen werden wie geöffnet, ob ungültige zeichenfolgen wie zb '(+' vorkommen, und ob bei verschiedenen netzstruckturen auch irgendwann klammern vorkommen.

2)ein korrekter eingabestring wird an Calculate.CalcStr übergeben

  Calculate.CalcStr
hier geschieht die eigentliche berechnung. als erstes wird ein array definiert, dass soviele stellen hat, wie es operatoren gibt. dann werden die positionen der operatoren im array gespeichert. danach wird untersucht, ob an der ersten stelle klammern sind. solandge das der fall ist, wird wieder ein substring an Calculate.CalcStr übergeben. damit ist dir ganze sache rekursiv. wenn alle klammern aufgelöst wurden, wir je nach typ (seriell/parallel) aus den den summanden das ergebnis berechnet, und an die main übergeben.

3) in der main erfolgt dann nur noch die ausgabe des berechneten wertes

4) das wars!