# Taschenrechner mit JApplet



## mal-de (17. Mrz 2011)

Hallo Freunde 

Hoffe ich bin hier richtig mit meinem Post.
Ich bin ganz frisch hier und auch mehr oder weniger in Java.
Hab jetzt zwar ein Semester hinter mir, aber irgendwie haben die uns da nicht sooo viel beigebracht.

Naja. Auf jeden Fall versuche ich grad einen Taschenrechner zu Programmieren, der später im Browser laufen soll. Quasi benutze ich ein JApplet. Soweit bin ich bereits, komme aber irgendwie nicht weiter:

[Java]
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;



public class Applet extends JApplet implements ActionListener {

	public TextField f1 = new TextField();

	public Applet() {

    Container content = getContentPane();
    content.setLayout(new BorderLayout());
    content.setBackground(Color.green);

    JPanel northPanel = new JPanel();
	JPanel centerPanel = new JPanel();

	content.add(northPanel, BorderLayout.NORTH);
	content.add(centerPanel, BorderLayout.CENTER);

	northPanel.setLayout(new GridLayout(1, 1));
	centerPanel.setLayout(new GridLayout(4, 4));

	northPanel.add(f1);

	JButton b1 = new JButton("7");
	centerPanel.add(b1);
	b1.addActionListener(this);
	b1.setActionCommand("7");

        ..... hier wären die anderen Buttons

  }

	public void actionPerformed(ActionEvent event) {
		f1.setText(f1.getText() + event.getActionCommand());
	}

}
[/Java]

Also wenn ich nun auf die Button drücke, wird die Zahl ins TextField geschrieben.
Aber wie rechne ich nun damit?!

Steh ein wenig auf dem Schlauch.

Danke schon einmal


----------



## Gast2 (17. Mrz 2011)

```
int zahl = Integer.parseInt(f1.getText());
```
mit zahl kannst du dann normal rechnen.

Nenn deine Klasse besser anders, es gibt bereits eine Klasse in Java die Applet heißt.


----------



## gmx777 (18. Mrz 2011)

mal-de hat gesagt.:


> Hallo Freunde
> 
> 
> Also wenn ich nun auf die Button drücke, wird die Zahl ins TextField geschrieben.
> ...



Also ich wuerde an deiner Stelle

```
private JTextField eingabeFeld1, eingabeFeld2;
```

nehmen, dann kannst die Zahlen direkt eingeben, ohne das du was druecken musst.

Grafisch kann der Taschenrechner ungefaehr so aussehen:



Die Werte aus den Eingabefelder musst du dann in Variablen am besten vom Typ double speichern und damit dann deine Formel  fuettern.


----------



## mal-de (19. Mrz 2011)

Okay .. habs hinbekommen eine Zahl in "int zahl" zu speichern.
Aber jetzt stellt sich mir halt noch die Frage, wie ich das +, - ... und eine zweite Zahl speicher.

Meine Überlegung war, es über verschiedene Methoden oder in dem Fall müssten es dann Action sein?! Zum Beispiel irgendwie so

[Java]
	JButton b13 = new JButton("=");
	centerPanel.add(b13);
	b13.addActionListener(this);
	b13.setAction(gibErgebnis());
[/Java]

Funktioniert aber eher weniger ... hm.


----------



## bandy (19. Mrz 2011)

mal-de hat gesagt.:


> Okay .. habs hinbekommen eine Zahl in "int zahl" zu speichern.
> Aber jetzt stellt sich mir halt noch die Frage, wie ich das +, - ... und eine zweite Zahl speicher.
> 
> Meine Überlegung war, es über verschiedene Methoden oder in dem Fall müssten es dann Action sein?! Zum Beispiel irgendwie so
> ...



Ich wuerde erst ueberlegen wie dein Taschenrechner aussehen soll, grafisch. Wenn etwa so wie gmx777 vorschlaegt, dann brauchst du einen Listener, wenn eines der RadioButtons betaetigt wird, dann soll eine Methode fuer die entsprechende Rechenoperation aufgerufen werden, z. B. fuer Addition. Die Formel kannst so dann in der Methode schreiben 

```
ergebnis=zahl1+zahl2
```

Diese vereinbarst alle als double Variablen und das Ergebnis der Variable ergebnis uebergibst du dem Label wo das Ergebnis erscheinen soll


----------



## mal-de (19. Mrz 2011)

Also was ich mir bislang gebastelt hab sieht so aus.


----------



## gmx777 (19. Mrz 2011)

mal-de hat gesagt.:


> Also was ich mir bislang gebastelt hab sieht so aus.



Das ist dann die schwierige Version, na ja wenn  es vielleicht so verlangt wird???:L
Machst dir vielleicht zu viel Muehe?

Aber wenn so etwas haben willst, dann brauchst fuer jeden Button einen Listener, hast du wahrscheinlich schon?


----------



## mal-de (19. Mrz 2011)

gmx777 hat gesagt.:


> Das ist dann die schwierige Version, na ja wenn  es vielleicht so verlangt wird???:L
> Machst dir vielleicht zu viel Muehe?
> 
> Aber wenn so etwas haben willst, dann brauchst fuer jeden Button einen Listener, hast du wahrscheinlich schon?



Die Mühe kommt eher aus eigenem Willen.
Meinst du das so mit "Jeder Button braucht einen eigenen Listener" ?

[Java]
JButton b13 = new JButton("=");
	centerPanel.add(b13);
	b13.addActionListener(new ErgebnisListener());
	b13.setActionCommand(" = ");
[/Java]

[Java]
public class ErgebnisListener implements ActionListener {

	public void actionPerformed(ActionEvent event) {
		System.out.println(event.getActionCommand());

//		f1.setText(f1.getText() + event.getActionCommand());

	}	
}
[/Java]

Wenn ja, dann habe ich da ein Problem =/
Ich kann nämlich nicht auf das TextField zugreifen. Wenn ich dann aber 
*public class ErgebnisListener extends Rechner implements ActionListener*
schreibe, dann kommt jedes mal Applet nicht initialisiert ..


----------



## Gast2 (19. Mrz 2011)

Ich nehme an du hast dein Applet von umbenannt in Rechner.
Wenn du jetzt deine Actionlistener von Rechner erben lässt wäre jeder Actionlistener auch ein JApplet, und das is ja nicht sinn der sache...
Wenn du zugriff auf die objekte willst, dann gib deinem ActionListener eine Referenz auf dein Applet mit. Über getter und setter kommst du dann an deine daten.


----------



## bandy (19. Mrz 2011)

mal-de hat gesagt.:


> Meinst du das so mit "Jeder Button braucht einen eigenen Listener" ?





```
//die innere Klasse für die Ereignisverarbeitung
	class MeinListener implements ActionListener {
		
		@Override
		public void actionPerformed(ActionEvent e) {
			//wurde auf Beenden geklickt?
			//dann das Programm beenden
			if (e.getActionCommand().equals("ende")) 
				System.exit(0);
			//wurde auf Berechnen geklickt?
			//dann eine Methode für die Berechnung aufrufen
			//und das Ergebnis anzeigen
			if (e.getActionCommand().equals("rechnen"))  
				ausgabe.setText(berechnen());
                        
                       ...................usw.
		}
	}
```



```
schaltflaecheBeenden = new JButton(" Beenden ");
		//das Aktion-Command setzen
		schaltflaecheBeenden.setActionCommand("ende");
		schaltflaecheBerechnen = new JButton("Berechnen");
		schaltflaecheBerechnen.setActionCommand("rechnen");
```


```
//die Schaltflächen mit dem Listener verbinden
		MeinListener listener = new MeinListener();
		schaltflaecheBeenden.addActionListener(listener);
		schaltflaecheBerechnen.addActionListener(listener);
```


Klar?:bahnhof:


----------



## mal-de (19. Mrz 2011)

Okay .. das Werk ist vollbracht .. ^^
Aber irgendwie kann ich es nun nicht mehr im Browser öffnen. ???:L

Komische Sache ..

[Java]

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;



public class Rechner extends JApplet implements ActionListener {  

	public static double zahl1;
	public static double zahl2;
	public static String ergebnis;
	public static char operator;


	public TextField f1 = new TextField();

	public Rechner() {

    Container content = getContentPane();
    content.setLayout(new BorderLayout());
    content.setBackground(Color.green);

    JPanel northPanel = new JPanel();
	JPanel centerPanel = new JPanel();

	content.add(northPanel, BorderLayout.NORTH);
	content.add(centerPanel, BorderLayout.CENTER);

	northPanel.setLayout(new GridLayout(1, 1));
	centerPanel.setLayout(new GridLayout(4, 4));

	northPanel.add(f1);

	JButton b1 = new JButton("7");
	centerPanel.add(b1);
	b1.addActionListener(this);
	b1.setActionCommand("7");

	JButton b2 = new JButton("8");
	centerPanel.add(b2);
	b2.addActionListener(this);
	b2.setActionCommand("8");


	JButton b3 = new JButton("9");
	centerPanel.add(b3);
	b3.addActionListener(this);
	b3.setActionCommand("9");


	JButton b4 = new JButton("/");
	centerPanel.add(b4);
	b4.addActionListener(new FunktionsListener());
	b4.setActionCommand("/");


	JButton b5 = new JButton("4");
	centerPanel.add(b5);
	b5.addActionListener(this);
	b5.setActionCommand("4");


	JButton b6 = new JButton("5");
	centerPanel.add(b6);
	b6.addActionListener(this);
	b6.setActionCommand("5");


	JButton b7 = new JButton("6");
	centerPanel.add(b7);
	b7.addActionListener(this);
	b7.setActionCommand("6");


	JButton b8 = new JButton("*");
	centerPanel.add(b8);
	b8.addActionListener(new FunktionsListener());
	b8.setActionCommand("*");


	JButton b9 = new JButton("1");
	centerPanel.add(b9);
	b9.addActionListener(this);
	b9.setActionCommand("1");


	JButton b10 = new JButton("2");
	centerPanel.add(b10);
	b10.addActionListener(this);
	b10.setActionCommand("2");


	JButton b11 = new JButton("3");
	centerPanel.add(b11);
	b11.addActionListener(this);
	b11.setActionCommand("3");


	JButton b12 = new JButton("+");
	centerPanel.add(b12);
	b12.addActionListener(new FunktionsListener());
	b12.setActionCommand("+");


	JButton b13 = new JButton("=");
	centerPanel.add(b13);
	b13.addActionListener(new FunktionsListener());
	b13.setActionCommand("rechnen");


	JButton b14 = new JButton(".");
	centerPanel.add(b14);
	b14.addActionListener(this);
	b14.setActionCommand(".");


	JButton b15 = new JButton("AC");
	centerPanel.add(b15);
	b15.addActionListener(new FunktionsListener());
	b15.setActionCommand("AC");


	JButton b16 = new JButton("-");
	centerPanel.add(b16);
	b16.addActionListener(this);
	b16.setActionCommand("-");


  }

	public void actionPerformed(ActionEvent event) {
		f1.setText(f1.getText() + event.getActionCommand());
	}

	public class FunktionsListener implements ActionListener {



		public void actionPerformed(ActionEvent e) {

			if (e.getActionCommand().equals("+")){
	        	zahl1 = Double.valueOf(f1.getText());
	        	operator = '+';
	        	f1.setText("");
	        }

			if (e.getActionCommand().equals("-")){
	        	zahl1 = Double.valueOf(f1.getText());
	        	operator = '-';
	        	f1.setText("");
	        }

			if (e.getActionCommand().equals("/")){
	        	zahl1 = Double.valueOf(f1.getText());
	        	operator = '/';
	        	f1.setText("");
	        }

			if (e.getActionCommand().equals("*")){
	        	zahl1 = Double.valueOf(f1.getText());
	        	operator = '*';
	        	f1.setText("");
	        }

			if (e.getActionCommand().equals("AC")){
	        	f1.setText("");
	        }

	        if (e.getActionCommand().equals("rechnen")) {
	        	zahl2 = Double.valueOf(f1.getText());
	        	f1.setText(berechnen(zahl1, zahl2));
	        }

	    }


			public String berechnen(double c, double d){

				switch (operator) {
				case '+':
					return addiere(c, d);
				case '-':
					return subtrahiere(zahl1, zahl2);
				case '/':
					return dividiere(zahl1, zahl2);
				case '*':
					return multipliziere(zahl1, zahl2);
				default:
					throw new RuntimeException("Ich wei√ü nicht, was '"+ operator +"' bedeuten soll");

				}
			}

			public String addiere(double a, double b){
				ergebnis = String.valueOf(a + b);
				return ergebnis;
			}

			public String subtrahiere(double a, double b){
				ergebnis = String.valueOf(a - b);
				return ergebnis;
			}

			public String multipliziere(double a, double b){
				ergebnis = String.valueOf(a * b);
				return ergebnis;
			}

			public String dividiere(double a, double b){
				ergebnis = String.valueOf(a / b);
				return ergebnis;
			}


	}
}
[/Java]


----------



## L-ectron-X (19. Mrz 2011)

Gibt deine Java-Konsole was aus?
Und wie sieht dein HTML-Code aus?


----------



## mal-de (19. Mrz 2011)

L-ectron-X hat gesagt.:


> Gibt deine Java-Konsole was aus?
> Und wie sieht dein HTML-Code aus?




Also wenn ich es mit Eclipse starte, dann geht alles.
Im Browser kommt demm im Javabereich der Text "Fehler. Mehr per Klick"
und in der JavaConsole steht 

*Java-Plug-In 1.5.0_26
Verwendung der JRE-Version 1.5.0_26-b03-376-9M3263 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = /Users/malte....*

Mein HTML-Code sieht so aus:

```
<html>
	<head>
    	<title>Test Applet</title>
    </head>
    
    <body>
    	<p align="center">
 		 <applet code="Rechner.class" width="350" height="500" alt="Java-Applets mit HTML-Farbw&auml;hler">
   		 <param name="TestText" value="SELFHTML">
 		 </applet>
		</p>
        
      </body>
</html>
```


----------



## L-ectron-X (19. Mrz 2011)

mal-de hat gesagt.:


> Im Browser kommt demm im Javabereich der Text "Fehler. Mehr per Klick"


Kannst du den Fehler genauer angeben?


----------



## bandy (19. Mrz 2011)

mal-de hat gesagt.:


> Okay .. das Werk ist vollbracht .. ^^
> Aber irgendwie kann ich es nun nicht mehr im Browser öffnen. ???:L
> 
> Komische Sache ..



Genau, was macht das Programm in deiner IDE, z.B. in Eclipse???:bahnhof:

Ausserdem, vergleiche es mal mit normalem Taschenrechner aus realen Welt, wenn du dort eine Zahl eintippst und dann Zeichen fuer Rechenoperation betaetigst und anschliessend eine weitere Zahl eingibst, wird die erste Zahl im Display wegradiert und wenn du anschliessend auf das Gleicheitszeichen drueckst, wird die zweite Zahl auch wegradiert und das Ergebnis plaziert, hast du das auch in deinem programm umgesetzt?:bahnhof:


----------



## mal-de (19. Mrz 2011)

Also in Eclipse funktioniert alles gut.
Habe es so ähnlich umgesetzt. Wenn ich eine Zahl eingebe und dann auf beispielsweise +
drücke, wird die Zahl ausradiert und eine neue kann eingegeben werden.

Und der Fehler im Browser sieht dann so aus.


----------



## bandy (19. Mrz 2011)

Versuch in einem anderen Browser, Opera, Firefox etc. vielleicht braucht dein Browser als Plugin eine Java JRE ? Erst dann koennen dort Java Programme ausgefuehrt werden?:bahnhof:


----------



## mal-de (19. Mrz 2011)

bandy hat gesagt.:


> Versuch in einem anderen Browser, Opera, Firefox etc. vielleicht braucht dein Browser als Plugin eine Java JRE ? Erst dann koennen dort Java Programme ausgefuehrt werden?:bahnhof:



Als hinter den Buttons noch keine Funktion war, konnte der Browser es darstellen.
Hab Firefox, Safari und Opera probiert, nichts geht ^^


----------



## bandy (20. Mrz 2011)

mal-de hat gesagt.:


> Als hinter den Buttons noch keine Funktion war, konnte der Browser es darstellen.
> Hab Firefox, Safari und Opera probiert, nichts geht ^^



Dann liegt dort auch der Fehler !!! Klammere diesen letzten Schritt dann aus und probiere es wieder


----------



## bandy (20. Mrz 2011)

Ich denke dein Fehler liegt hier


```
public class FunktionsListener implements ActionListener
```

public kann keine innere Klasse sein, Eclipse muss dir dies auch zeigen

und hier


```
b10.addActionListener(this);
```

warum this ?

Wo ist die Instanz des Listeners???


```
FunktionsListener listener= new FunktionsListener();
b10.addActionListener(listener);
```


----------



## mal-de (20. Mrz 2011)

bandy hat gesagt.:


> Ich denke dein Fehler liegt hier
> 
> 
> ```
> ...



Ich hab das mehr oder weniger von meinem Doc. von der Uni übernommen.
Der hat das so gemacht .. ^^

Dass die innere Klasse public ist, da hat Eclipse aber nichts gesagt .. komisch.

Werd es morgen mal ändern und schaun, ob es dann läuft.
Danke erst einmal für die viele Hilfe.
Melde mich sobald es neuigkeiten gibt


----------



## bandy (20. Mrz 2011)

mal-de hat gesagt.:


> Ich hab das mehr oder weniger von meinem Doc. von der Uni übernommen.
> Der hat das so gemacht .. ^^
> 
> Dass die innere Klasse public ist, da hat Eclipse aber nichts gesagt .. komisch.
> ...



Der Konstruktor hat in einem Applet auch nichts zu suchen, er wird duch Methode init() erstezt.

Kann es sein dass die Aufgabe lautete eine Applikation in Applet umzubauen???


----------



## L-ectron-X (20. Mrz 2011)

In deinem Fehlerfenster steht doch auch: "Weitere Informationen erhalten Sie, wenn Sie auf Details klicken."
Hast du das mal gemacht? Was bekommst du dann zu lesen?
Der Java-Interpreter gibt üblicherweise immer eine Fehlermeldung aus, wenn etwas schief gegangen ist.
Ganz wichtig dafür ist, dass man auch Exceptions behandelt und nicht den body des catch-Blockes leer lässt.


----------



## mal-de (20. Mrz 2011)

Nein, es ist keine Aufgabe das in ein Applet umzuwandeln.
Wollte mal was machen, was man im Browser anzeigen kann.

Wenn ich auf Details klicke, dann kommt das, was in der JavaConsole steht.
Mehr leider nicht.

Aber naja, war ja jetzt quasi ein erster Versuch  und wer kann schon erwarten, dass alles
gleich reibungslos funktioniert. Übung macht den Meister, oder nicht?!


----------



## tuttle64 (20. Mrz 2011)

mal-de hat gesagt.:


> Nein, es ist keine Aufgabe das in ein Applet umzuwandeln.
> Wollte mal was machen, was man im Browser anzeigen kann.




auf meiner maschine konnte ich das applet ohne init() und papipapoh problemlos starten. ich habe die verwendeten src und bin in ein zip gepackt, welches du hier downloaden kannst. check it out.


----------



## mal-de (20. Mrz 2011)

tuttle64 hat gesagt.:


> auf meiner maschine konnte ich das applet ohne init() und papipapoh problemlos starten. ich habe die verwendeten src und bin in ein zip gepackt, welches du hier downloaden kannst. check it out.



Höä .. da kommt bei mir auch der gleiche Fehler .. dann muss es wohl an meiner Javaversion im
Browser liegen?! Ich werde das mal überprüfen ..


----------



## bandy (21. Mrz 2011)

Tja, wenn das Programm in Eclipse laeuft, heist es lange noch nicht, dass es auch im Browser tut, 
versuch mal so.



```
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; 
import javax.swing.*;
  
public class TaschenrecherApplet extends JApplet implements ActionListener {  
        
	private static final long serialVersionUID = 1L;
	public static double zahl1;
    public static double zahl2;
    public static String ergebnis;
    public static char operator;
    
    public TextField f1 = new TextField();
    
    @Override
    public void init() {
      
    Container content = getContentPane();
    content.setLayout(new BorderLayout());
    content.setBackground(Color.green);
    
    JPanel northPanel = new JPanel();
    JPanel centerPanel = new JPanel();
    
    content.add(northPanel, BorderLayout.NORTH);
    content.add(centerPanel, BorderLayout.CENTER);
    
    northPanel.setLayout(new GridLayout(1, 1));
    centerPanel.setLayout(new GridLayout(4, 4));
    
    northPanel.add(f1);
    
    JButton b1 = new JButton("7");
    centerPanel.add(b1);
    b1.addActionListener(this);
    b1.setActionCommand("7");
    
    JButton b2 = new JButton("8");
    centerPanel.add(b2);
    b2.addActionListener(this);
    b2.setActionCommand("8");
    
    
    JButton b3 = new JButton("9");
    centerPanel.add(b3);
    b3.addActionListener(this);
    b3.setActionCommand("9");
    
    
    JButton b4 = new JButton("/");
    centerPanel.add(b4);
    b4.addActionListener(new FunktionsListener());
    b4.setActionCommand("/");
    
    
    JButton b5 = new JButton("4");
    centerPanel.add(b5);
    b5.addActionListener(this);
    b5.setActionCommand("4");
    
    
    JButton b6 = new JButton("5");
    centerPanel.add(b6);
    b6.addActionListener(this);
    b6.setActionCommand("5");
    
    
    JButton b7 = new JButton("6");
    centerPanel.add(b7);
    b7.addActionListener(this);
    b7.setActionCommand("6");
    
    
    JButton b8 = new JButton("*");
    centerPanel.add(b8);
    b8.addActionListener(new FunktionsListener());
    b8.setActionCommand("*");
    
    
    JButton b9 = new JButton("1");
    centerPanel.add(b9);
    b9.addActionListener(this);
    b9.setActionCommand("1");
    
    
    JButton b10 = new JButton("2");
    centerPanel.add(b10);
    b10.addActionListener(this);
    b10.setActionCommand("2");
    
    
    JButton b11 = new JButton("3");
    centerPanel.add(b11);
    b11.addActionListener(this);
    b11.setActionCommand("3");
    
    
    JButton b12 = new JButton("+");
    centerPanel.add(b12);
    b12.addActionListener(new FunktionsListener());
    b12.setActionCommand("+");
    
    
    JButton b13 = new JButton("=");
    centerPanel.add(b13);
    b13.addActionListener(new FunktionsListener());
    b13.setActionCommand("rechnen");
    
    
    JButton b14 = new JButton(".");
    centerPanel.add(b14);
    b14.addActionListener(this);
    b14.setActionCommand(".");
    
    
    JButton b15 = new JButton("AC");
    centerPanel.add(b15);
    b15.addActionListener(new FunktionsListener());
    b15.setActionCommand("AC");
    
    
    JButton b16 = new JButton("-");
    centerPanel.add(b16);
    b16.addActionListener(this);
    b16.setActionCommand("-");
    
 
  }
 
    public void actionPerformed(ActionEvent event) {
        f1.setText(f1.getText() + event.getActionCommand());
    }
    
    public class FunktionsListener implements ActionListener {
        
    
        
        public void actionPerformed(ActionEvent e) {
            
            if (e.getActionCommand().equals("+")){
                zahl1 = Double.valueOf(f1.getText());
                operator = '+';
                f1.setText("");
            }
            
            if (e.getActionCommand().equals("-")){
                zahl1 = Double.valueOf(f1.getText());
                operator = '-';
                f1.setText("");
            }
            
            if (e.getActionCommand().equals("/")){
                zahl1 = Double.valueOf(f1.getText());
                operator = '/';
                f1.setText("");
            }
            
            if (e.getActionCommand().equals("*")){
                zahl1 = Double.valueOf(f1.getText());
                operator = '*';
                f1.setText("");
            }
            
            if (e.getActionCommand().equals("AC")){
                f1.setText("");
            }
            
            if (e.getActionCommand().equals("rechnen")) {
                zahl2 = Double.valueOf(f1.getText());
                f1.setText(berechnen(zahl1, zahl2));
            }
                
        }
        
        
            public String berechnen(double c, double d){
                
                switch (operator) {
                case '+':
                    return addiere(zahl1, zahl2);
                case '-':
                    return subtrahiere(zahl1, zahl2);
                case '/':
                    return dividiere(zahl1, zahl2);
                case '*':
                    return multipliziere(zahl1, zahl2);
                default:
                    throw new RuntimeException("Ich wei√ü nicht, was '"+ operator +"' bedeuten soll");
                
                }
            }
            
            public String addiere(double a, double b){
                ergebnis = String.valueOf(a + b);
                return ergebnis;
            }
            
            public String subtrahiere(double a, double b){
                ergebnis = String.valueOf(a - b);
                return ergebnis;
            }
            
            public String multipliziere(double a, double b){
                ergebnis = String.valueOf(a * b);
                return ergebnis;
            }
            
            public String dividiere(double a, double b){
                ergebnis = String.valueOf(a / b);
                return ergebnis;
            }
    }
}
```


----------

