• Wir präsentieren Dir heute ein Stellenangebot für einen Frontend-Entwickler Angular / Java in Braunschweig. Hier geht es zur Jobanzeige

Werte von Objekte addieren

L

Levent14

Mitglied
Hallo zusammen

Wie kann ich zwei Gehälter addieren? Ich versuche es seit Tagen und komme nicht weiter.

public class Program
{
public static void main(String[] args)
{
Worker worker1 = new Worker();
Worker worker2 = new Worker();
worker1.name = "James";
worker1.salary = 200000;
worker2.name = "Tom";
worker2.salary = 150000;
System.out.println(totalsalary);

public static int calculateTotalSalary(Worker w1, worker w2)
{
return totalSalary = w1.getSalary() + w2.getSalary();
}
}
}

class Worker
{
private String name;
private int salary;

public Worker (String name, int salary) {
this.name = name;
this.salary = salary;
}

public String getName() {
return name;
}

public int getSalary() {
return salary;
}
}
 
D

dress19

Mitglied
Java:
import java.util.Arrays;

public class Program {
    public static void main(String[] args) {
        Worker worker1 = new Worker("James", 200000);
        Worker worker2 = new Worker("Tom", 150000);
        System.out.println(calculateTotalSalary(worker1, worker2));
    }

    public static double calculateTotalSalary(Worker... workers) {
        return Arrays.stream(workers).mapToDouble(Worker::getSalary).sum();
    }
}

class Worker {
    private String name;
    private int salary;

    public Worker(String name, int salary) {
        this.name = name;
        this.salary = salary;
    }

    public String getName() {
        return name;
    }

    public int getSalary() {
        return salary;
    }
}
 
L

Levent14

Mitglied
Es muss nicht + sein, wenn + falsch ist. Ich möchte nur wissen, wie ich die beiden Werte 200000 und 150000 addieren kann.
 
H

httpdigest

Top Contributor
Also, wenn wir uns deinen syntaktisch falschen Code vom ersten Post mal anschauen:
Java:
public class Program {
  public static void main(String[] args) {
    Worker worker1 = new Worker();
    Worker worker2 = new Worker();
    worker1.name = "James";
    worker1.salary = 200000;
    worker2.name = "Tom";
    worker2.salary = 150000;
    System.out.println(totalsalary);
    public static int calculateTotalSalary(Worker w1, Worker w2) {
      return totalSalary = w1.getSalary() + w2.getSalary();
    }
  }
}
dann fällt hier schonmal auf, dass du eine Methode innerhalb einer anderen Methode deklarieren willst, was in Java nicht geht.
Also ziehen wir mal die innere/falsche Methode nach aussen:
Java:
public class Program {
  public static void main(String[] args) {
    Worker worker1 = new Worker();
    Worker worker2 = new Worker();
    worker1.name = "James";
    worker1.salary = 200000;
    worker2.name = "Tom";
    worker2.salary = 150000;
    System.out.println(totalsalary);
  }
  public static int calculateTotalSalary(Worker w1, Worker w2) {
    return totalSalary = w1.getSalary() + w2.getSalary();
  }
}
Jetzt fällt auf, dass du mit `System.out.println(totalsalary);` auf eine Variable `totalsalary` zugreifen willst, die es gar nicht gibt.
Desweiteren sehen wir in der Methode `calculateTotalSalary`, dass du innerhalb des return Statements noch auf eine unbekannte Variable `totalSalary` zuweisen willst. Innerhalb eines return-Statements noch eine Zuweisung zu haben, ist zwar syntaktisch und grammatikalisch nicht falsch, aber nicht das, was du willst. Du willst einfach nur das Ergebnis von w1.getSalary() + w2.getSalary() zurückgegeben.
Und dann musst du natürlich auch diese Methode aufrufen.
Z.B. durch Ersetzung des System.out.println(totalsalary); durch: System.out.println(calculateTotalSalary(worker1, worker2));
Du kannst natürlich das Ergebnis des Methodenaufrufes vorher noch einer vorher deklarierten Variablen zuweisen und dann diese Variable ausgeben, also (in der main Methode):
Java:
int totalSalary = calculateTotalSalary(worker1, worker2);
System.out.println(totalSalary);
 
L

Levent14

Mitglied
@httpdigest vielen herzlichen Dank!
Ich habe Deine Erklärungen verstanden. Jedoch funktionert Deine Lösung nicht.

Dein Lösungsvorschlag:
Java:
public class Program {
  public static void main(String[] args) {
    Worker worker1 = new Worker();
    Worker worker2 = new Worker();
    worker1.name = "James";
    worker1.salary = 200000;
    worker2.name = "Tom";
    worker2.salary = 150000;
    int totalSalary = calculateTotalSalary(worker1, worker2);
    System.out.println(totalSalary);
  }
  public static int calculateTotalSalary(Worker w1, Worker w2) {
    return totalSalary = w1.getSalary() + w2.getSalary();
  }
}

class Worker {
    String name;
    int salary;    

    public Worker (String name, int salary) {
        this.name = name;
        this.salary = salary;
    }
    
    public String getName() {
        return name;
    }
        
    public int getSalary() {
        return salary;
    }
}

Fehlermeldung:
Java:
NPP_EXEC: "Compile and Run"
CD: C:\Users\Levent14\Desktop\UcuncuBinyil\Test
Current directory: C:\Users\Levent14\Desktop\UcuncuBinyil\Test
javac Program.java
Process started (PID=2732) >>>
Program.java:3: error: constructor Worker in class Worker cannot be applied to given types;
    Worker worker1 = new Worker();
                     ^
  required: String,int
  found: no arguments
  reason: actual and formal argument lists differ in length
Program.java:4: error: constructor Worker in class Worker cannot be applied to given types;
    Worker worker2 = new Worker();
                     ^
  required: String,int
  found: no arguments
  reason: actual and formal argument lists differ in length
Program.java:13: error: cannot find symbol
    return totalSalary = w1.getSalary() + w2.getSalary();
           ^
  symbol:   variable totalSalary
  location: class Program
3 errors
<<< Process finished (PID=2732). (Exit code 1)
java Program
Process started (PID=14548) >>>
Exception in thread "main" java.lang.NoSuchMethodError: Worker.CalculateTotalSalary()V
    at Program.main(Program.java:8)
<<< Process finished (PID=14548). (Exit code 1)
================ READY ================
}}
 
H

httpdigest

Top Contributor
Ja gut, das war ja eher dein Code. Der Konstruktor der Klasse Worker will halt noch zwei Argumente haben, den Namen und das Gehalt.
Es gibt durchaus noch mehr Fehler in deinem Code, aber das solltest du schon selber herausfinden und fixen. Oder halt erstmal ein Grundlagenbuch zu Java zur Hand nehmen und durcharbeiten.
 
L

Levent14

Mitglied
Hallo @httpdigest. Zwei Fehlermeldungen habe ich wegbekommen indem ich die Parameter aus dem Konstruktor entfernt habe.
Vorher: public Worker (String name, int salary) {
Nachher: public Worker () {

Hier der neue Code:
Java:
public class Program {
  public static void main(String[] args) {
    Worker worker1 = new Worker();
    Worker worker2 = new Worker();
    worker1.name = "James";
    worker1.salary = 200000;
    worker2.name = "Tom";
    worker2.salary = 150000;
    int totalSalary = calculateTotalSalary(worker1, worker2);
    System.out.println(totalSalary);
  }
 
  public static int calculateTotalSalary(Worker w1, Worker w2) {
    return totalSalary = w1.getSalary() + w2.getSalary();
  }
}

class Worker {
    String name;
    int salary;   

    public Worker () {
        this.name = name;
        this.salary = salary;
    }
   
    public String getName() {
        return name;
    }
       
    public int getSalary() {
        return salary;
    }
}

Fehlermeldung:
Java:
javac Program.java
Process started (PID=8988) >>>
Program.java:14: error: cannot find symbol
    return totalSalary = w1.getSalary() + w2.getSalary();
           ^
  symbol:   variable totalSalary
  location: class Program
1 error
<<< Process finished (PID=8988). (Exit code 1)
java Program
Process started (PID=1904) >>>
Exception in thread "main" java.lang.NoSuchMethodError: Worker.CalculateTotalSalary()V
    at Program.main(Program.java:8)
<<< Process finished (PID=1904). (Exit code 1)
================ READY ================
 
kneitzel

kneitzel

Top Contributor
Und das ist doch in #6 auch behandelt worden. Das macht so keinen Sinn. Da solltest Du einfach das "totalSalary = " aus der Zeile löschen, so dass Du nur noch return w1.getSalary() + w2.getSalary(); da hast... Und da, wo du totalSalary ausgeben wolltest muss natürlich der Aufruf der Methode hin ...

Daher: Wirklich einmal die Java Grundlagen noch einmal im Detail anschauen. Ein Lehrbuch von Anfang an durchgehen kann ich nur empfehlen.
Und vergiss bitte erst einmal Streams - auch wenn dir jemand da irgendwelche Lösungen diesbezüglich zeigen sollte. Du brauchst die Grundlagen und wenn Du die noch nicht verstanden hast, dann sind streams und irgendwelche Beiträge auf Baeldung wohl absolut kontraproduktiv.
 
L

Levent14

Mitglied
Hallo @kneitzel. Ausgezeichnet :) Dankeschön :)
Ich habe das Buch Java lernen mit BlueJ. Ich bin jedoch erst bei Kapitel 3 angekommen.
Das Programm funktioniert jetzt. Ich werde versuchen die Idee dahinter sehr gut zu verstehen. Ich danke euch allen.
Java:
public class Program {
  public static void main(String[] args) {
    Worker worker1 = new Worker();
    Worker worker2 = new Worker();
    worker1.name = "James";
    worker1.salary = 200000;
    worker2.name = "Tom";
    worker2.salary = 150000;
    System.out.println(calculateTotalSalary(worker1, worker2));
  }

  public static int calculateTotalSalary(Worker w1, Worker w2) {
    return w1.getSalary() + w2.getSalary();
  }
}

class Worker {
    String name;
    int salary; 

    public Worker () {
        this.name = name;
        this.salary = salary;
    }
 
    public String getName() {
        return name;
    }
     
    public int getSalary() {
        return salary;
    }
}
Ausgabe in der Console:
Java:
javac Program.java
Process started (PID=13504) >>>
<<< Process finished (PID=13504). (Exit code 0)
java Program
Process started (PID=4148) >>>
350000
<<< Process finished (PID=4148). (Exit code 0)
================ READY ================
 
L

Levent14

Mitglied
Nachstehend eine vereinfachte Lösung:
Java:
public class Program {
  public static void main(String[] args) {
    Worker worker1 = new Worker();
    Worker worker2 = new Worker();
    worker1.name = "James";
    worker1.salary = 200000;
    worker2.name = "Tom";
    worker2.salary = 150000;
    System.out.println(calculateTotalSalary(worker1.salary, worker2.salary));
  }

  public static int calculateTotalSalary(int a, int b) {
    return a + b;
  }
}

class Worker {
    String name;
    int salary;  
}
Ausgabe in der Console
Java:
javac Program.java
Process started (PID=17020) >>>
<<< Process finished (PID=17020). (Exit code 0)
java Program
Process started (PID=1860) >>>
350000
<<< Process finished (PID=1860). (Exit code 0)
================ READY ================
[code]
 
D

dress19

Mitglied
Was ist so schwer daran, Beitrag #3 zu nehmen und die Stream-Zeile 11 durch return w1.getSalary() + w2.getSalary(); zu ersetzen?

Du machst alles nur noch schlimmer und unsere Ratschläge ignorierst Du. Dann musst du zusehen wie du fertig wirst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D X Werte in ArrayList von Point Objekte alle gleich ? Java Basics - Anfänger-Themen 11
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
G Array Werte addieren Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
C Zufallszahl + Werte bereich einstellen Java Basics - Anfänger-Themen 2
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
L 2 Dimensional Array werte überschreiben Java Basics - Anfänger-Themen 1
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
R Combobox-Werte in GUI anzeigen Java Basics - Anfänger-Themen 13
J Neue Werte in ein Array hinzugeben Java Basics - Anfänger-Themen 8
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
A Negative float Werte? Java Basics - Anfänger-Themen 10
Kirby.exe Fehlende Int Werte aus Array mit streams finden Java Basics - Anfänger-Themen 19
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
D Input/Output Input von zwei Koordinaten validieren und anschließend Werte speichern Java Basics - Anfänger-Themen 7
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
M Werte ändern sich nicht mehr nach Reset Java Basics - Anfänger-Themen 14
F Character umwandeln als Double Werte Java Basics - Anfänger-Themen 8
B Werte aus einem Unterprogramm in ein Array schreiben Java Basics - Anfänger-Themen 2
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
S Werte aufsummieren in java? Java Basics - Anfänger-Themen 5
M Werte des Arrays addieren Java Basics - Anfänger-Themen 5
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
C System.in.read() Boolsche Werte vergleichen Java Basics - Anfänger-Themen 8
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
D Werte aus einem BinärBaum in einem Array speichern Java Basics - Anfänger-Themen 1
R Datenbank-Werte dynamisch ausgeben Java Basics - Anfänger-Themen 19
E Eigenschaften Werte, in einer anderen Klasse, zuweisen Java Basics - Anfänger-Themen 40
H Methoden Nutzung der Werte einer ausgeführten Objektmethode in anderen Objektmethoden Java Basics - Anfänger-Themen 2
O Map Werte Java Basics - Anfänger-Themen 2
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
L Werte zufällig aus Array zurückgeben Java Basics - Anfänger-Themen 15
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
S werte von objekten in schleife verändern Java Basics - Anfänger-Themen 14
R Vererbung werte von einem Objekt aus ein anderes übertragen Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
N Methoden HashMap interne Werte miteinander vergleichen Java Basics - Anfänger-Themen 7
L Bestimmte Werte eines Arrays ausgeben. Java Basics - Anfänger-Themen 3
Hanschyo String kann nicht Werte von Long annehmen Java Basics - Anfänger-Themen 2
A Sortieren ausgerechneter Werte aus einer TXT Datei Java Basics - Anfänger-Themen 8
S Werte in Klasse übergeben Java Basics - Anfänger-Themen 12
C Auf einzelne Werte aus HashSet zugreifen Java Basics - Anfänger-Themen 10
S Werte in Liste mit Nachfolger vergleichen Java Basics - Anfänger-Themen 5
M Vererbung Konstruktoren mit festen Werte Java Basics - Anfänger-Themen 2
C Werte im Vector in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 14
Jinnai4 Werte in Textdatei ändern Java Basics - Anfänger-Themen 2
L Gleiche Werte aus Array aussortieren Java Basics - Anfänger-Themen 5
L Gleiche Werte im Array hochzählen Java Basics - Anfänger-Themen 4
C Matrix-Werte werden nicht wie erwartet ausgegeben Java Basics - Anfänger-Themen 7
V Warum speichert meine String-Variable nummerische Werte? Java Basics - Anfänger-Themen 3
Henri Bestimmte Werte eine XML-Datei ausgeben. Java Basics - Anfänger-Themen 8
N Array-Werte zusammenfassen Java Basics - Anfänger-Themen 20
D Werte AVL-Baum löschen Java Basics - Anfänger-Themen 2
M JComboBox feste double Werte zu ordnen Java Basics - Anfänger-Themen 8
N Collections Werte aus .txt in einer Collection speichern Java Basics - Anfänger-Themen 11
J Array Werte benutzen Java Basics - Anfänger-Themen 16
D Erste Schritte Array Werte an Methode übergeben Java Basics - Anfänger-Themen 6
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
S Array Werte vertauschen Java Basics - Anfänger-Themen 2
sourcecorn Werte aus einem File lesen Java Basics - Anfänger-Themen 6
M Neu instanzierte Klasse übernimmt Werte von anderer Instanz Java Basics - Anfänger-Themen 4
P Erste Schritte Mittelwert zeitlich abhängiger Werte Java Basics - Anfänger-Themen 1
D Array Werte einlesen und ausgeben? Java Basics - Anfänger-Themen 8
P Klassen Berechnen mehrerer Map-Werte Java Basics - Anfänger-Themen 13
F Werte in 2D-Array mit anderem 2D-Array überschreiben Java Basics - Anfänger-Themen 2
R Werte aus Array addieren und Mittelwert bilden Java Basics - Anfänger-Themen 2
A Werte innerhalb von resultset vergleichen Java Basics - Anfänger-Themen 2
S Werte in Array einlesen Java Basics - Anfänger-Themen 2
B Array Werte zuweisen Java Basics - Anfänger-Themen 4
A Die Werte zur Berechnung müssen als Parameter übergeben werden? Java Basics - Anfänger-Themen 7
J Werte aus einer Tabelle übernehmen Java Basics - Anfänger-Themen 2
J Werte an eine andere Klasse übergeben Java Basics - Anfänger-Themen 4
M Werte der Knoten in Binärbaum addieren (iterativ) Java Basics - Anfänger-Themen 6
I Werte zu existierendem int addieren Java Basics - Anfänger-Themen 4
L Werte von Strings ? Java Basics - Anfänger-Themen 1
U Array werte speichern und für berechnungen nutzen Java Basics - Anfänger-Themen 4
Alex/89 Werte einer .txt Datei sortieren Java Basics - Anfänger-Themen 8
N Bubble Sort sortieren mit Int Werte Java Basics - Anfänger-Themen 8
D Matritzenmultiplikation berechnet Werte falsch Java Basics - Anfänger-Themen 9
C Methoden Einfach verkette Liste - int Werte aufsteigend sortieren Java Basics - Anfänger-Themen 1
I Input/Output 3 Werte in Datei schreiben, duplikate vermeiden Java Basics - Anfänger-Themen 4
K Datentypen Werte im Array vertauschen Java Basics - Anfänger-Themen 5
D Kopierten Objekt Werte zuweisen Java Basics - Anfänger-Themen 4
C Klassen Sudoku-Spiel Werte werden nicht gesetzt Java Basics - Anfänger-Themen 4
M Exception soll Werte mitgeliefert bekommen Java Basics - Anfänger-Themen 12
G Input/Output InputStream gibt nicht die Korrekten Werte aus Java Basics - Anfänger-Themen 10
J Variablen Doppelte Werte in Int Array Java Basics - Anfänger-Themen 10
D Werte in eckige Klammern finden Java Basics - Anfänger-Themen 3
O Datum-Werte gruppieren Java Basics - Anfänger-Themen 6
Silvascus Erste Schritte Werte innerhalb eines Arrays addieren Java Basics - Anfänger-Themen 3
stylegangsta Anzahl der gefunden array Werte ausgeben Java Basics - Anfänger-Themen 6
J Integer-Werte in Array ein- bzw. auslesen Java Basics - Anfänger-Themen 7
C Werte im Array sortieren Java Basics - Anfänger-Themen 5
S ArrayList Gruppieren, "Doppelte Werte" Addieren Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Anzeige

Neue Themen


Oben