# Summe Berechnen



## spitzname (19. Apr 2010)

```
import java.util.*;

public class Main {

    public static void main(String[] args) {

        //Scanner mit Objekt s initialisieren(für Eingabestrom)
        Scanner s = new Scanner(System.in);
        //Arrays mit drei Objekten von Classe Auftrag erzeugen
        Auftrag[] a = new Auftrag[3];
        //for Schleife initialisiert drei verschiedene Objekte
        //von Classe Auftrag mit Werten
        for (int i = 0;i<3;i++)
        {
            a[i]=new Auftrag();

           //preis wird eingegeben
          
            System.out.print("preis:");
            float gp = s.nextFloat();
            //i-ten preis in classe Auftrag in die variable preis übertragen
            a[i].setpreis(gp);
          
        }//ende for Schleife
     }ende main
}ende class main




//classe Auftrag
public class Auftrag {
    //variablendeklaration
     private float preis;
      
    //berechnet die Summe aller eingegebenen Preise
    double berechneEinnahmen()
    {

    }
     // zugrifsmethode für den eingegebenen Preis
     void setpreis(float eing_preis)
    {
        preis = eing_preis;
    }

}ende Class Auftrag
```


Hallo, wie kann ich die Summe von den drei eingegebenen Preisen berechnen, also welche Datten kommen in diese Methode der Classe Auftrag?

//berechnet die Summe aller eingegebenen Preise
    double berechneEinnahmen()
    {

    }

würde mich über Tipps freuen
danke im voraus

gruß


----------



## Gonzo17 (19. Apr 2010)

Ist etwas verwirrend. Du setzt in der for-Schleife den Preis jedes Auftrags, das ist klar. Auch wenn das ein falscher Methodenaufruf ist, denn deine Methode heisst setpreis(float eing_preis) und nicht setGesamtpreis(float eing_preis). Da musst du schon drauf achten. 

Die Summe aller eingegeben Preise bekommst du nicht per Methodenaufruf in EINEM Auftrag, das ist ein Denkfehler. Du bekommst die Summe der Preise, indem du in main-Methode von jedem Auftrag den Preis abfragst und diesen Preis dann zur Summe addierst. Macht aber wenig Sinn das dann überhaupt vorher in einer eigenen Klasse zu hinterlegen, wenn du sie für sonst nichts brauchst.


----------



## spitzname (19. Apr 2010)

Danke für den Tipp, 

die Classe wir benötigt weil da später  noch mehr Methoden defeniert werden.

also sollten die einzelnen Preise addiert werden ungefär so --> Summe = a[0].gp + a[1].gp + [a2].gp
aber wie mache ich das wenn ich 100 Aufträge und somit 100 Preise habe?


gruß spitzname


----------



## Michael... (19. Apr 2010)

Mit einer Schleife?

```
int sum = 0;
for (int i=0; i<auftrag.length; i++)
    sum +=auftrag[i].getPreis();
System.out.println(sum);
```


----------



## Gonzo17 (19. Apr 2010)

Ja, das kannst du ja oben in deiner for-Schleife einfach machen. Zuerst setzt du den Preis des Auftrages fest und dann addierst du ihn zur Summe. Dann hast du nur eine for-Schleife benötigt. 

Übrigens, hinter einigen geschweiften Klammern stehen ein paar Worte wie "ende main" oder dergleichen, das sollen wohl Kommentare werden, damit du den Überblick behältst, deswegen solltest du diese auch wirklich als Kommentare vermerken und ein // vor den Text anbringen (wie in der Zeile drüber), sonst denkt der Compiler, dass es ein Stück Code ist.


----------



## spitzname (19. Apr 2010)

Danke für die Hilfe, ich habe verstanden.:toll:
Aber ich habe doch noch eine Frage was ist wenn die Aufgabenstellung verlangt, dass eine Methode nämlich --> double berechneEinnahmen() <-- in der Clase Auftrag die Summe aller eingegebenen Preise berechnen soll, könnte man das umsetzen?


gruß spitzname


----------



## Gonzo17 (19. Apr 2010)

Da müsste man vielleicht die ganze Aufgabenstellung wissen, damit man genauer weiss, wie die Klasse Auftrag aussehen soll. Ansonsten wüsste ich jetzt nicht, wie man das sinnvoll umsetzen soll. Denn der Sinn einer Klasse ist ja, dass sie eigene und objektabhängige Parameter und Werte besitzt, dh du hast hier drei verschiedene Aufträge. Wenn du jetzt bei einem dieser Aufträge berechneEinnahmen() aufrufen würdest, dann kann dieser Auftrag die Daten der anderen Aufträge garnicht wissen, deswegen machts auch wenig Sinn, wenn du diese Methode in der Klasse Auftrag implementierst.
Einen Lösungsvorschlag hab ich doch, aber ich weiss nicht ob das der Sinn der Aufgabe war. Wenn du alle Aufträge, die du erzeugst, in einer Liste sammelst, dann kannst du in der Klasse Main die Methode berechneEinnahmen() erstellen und dort für jedes Element der Liste den Preis abrufen und zur Summe addieren. Das würde schon gehen.


----------

