BlueJ Objektzugriff

...komplette Frage anzeigen

1 Antwort

Wenn du das auszuwählende Objekt als Parameter übergibst, dieses bearbeitest, zusätzlich noch eigene Attribute veränderst und die Attribute eines anderen Objektes, welches in der Klasse gespeichert ist, erfüllt das deine Aufgabe. Ein konkretes Beispiel wäre gut.

XaMa928 24.02.2015, 10:53

Wir sind in der Schule noch recht am Anfang. Die gegebenen Klassen sind Firma und Angestellte.

Ziel ist es das Gehalt bei der Firma abzuziehen und dem Angestellten zugute kommen zu lassen.

z. B. das Objekt "Baufirma" zahlt den Lohn an den Angestellten "Max Mustermann". Also wenn ich die Methode bei "Baufirma" ausführe, dass beide Objekte betroffen sind.

0
XaMa928 24.02.2015, 14:25
@XaMa928

Hab es durch ausprobieren geschafft. Nun entsteht allerdings ein anderes Problem.

Der Compiler sagt mir int nicht möglich.

Meine Methode sieht wie folgt aus:

public void gehaltZahlung(Angestellter x, int zGehalt)

{ money = money - zGehalt ;

Angestellter money = Angestellter money - zGehalt ; }

Der Compiler erwartet nun von mir ein ; hinter dem 2.Angestellter. Tue ich dies steht vor dem Minus not a statement.

Woran liegt das und wie kann ich die Methode schreiben, sodass sie funktioniert?

Mfg XaMa

0
User40485 24.02.2015, 15:15
@XaMa928

Du kannst einem Angestellter-Objekt nur ein Angestellter-Objekt zuweisen. Was du versuchst, ist von einem Angestellter-Objekt eine Zahl abzuziehen. Allerdings weiß der Compiler nicht, wie man von einem Angestellter-Objekt eine Zahl abzieht. In Java kannst du Operatoren wie - oder + nicht mit eigener Funktionalität verwenden. "money = money - zGehalt;" zieht das Gehalt der Firma ab, richtig? Dann solle der Angestellte Geld bekommen. Das heißt du brauchst eine Methode in Angestellter, zB gehaltErhöhen(int gehalt). Dann rufst du x.gehaltErhöhen(zGehalt) auf. Außerdem würde ich eine Geldsumme mit einem anderen Datentype wie float oder double speichern, da es ja auch Cent-Beträge gibt.

1
XaMa928 24.02.2015, 15:53
@User40485

Ja richtig Danke :-)

Dann ist mir klar warum das nicht geht :D

Nur etwas verwunderlich, es würde Aufwand ersparen wenn es diese Möglichkeit gäbe.

0
User40485 24.02.2015, 15:58
@XaMa928

Es gibt die Möglichkeit zB in C/C++. In Java musst du Methoden schreiben zB add(), sub(), ... .

0
XaMa928 24.02.2015, 16:12
@User40485

Sind diese Programme im Umgang großartig anders als BlueJ oder kann man grundlegende Befehle auch in C/C++ verwenden?

0
User40485 24.02.2015, 16:15
@XaMa928

Java und C++ sind Programmiersprachen. Es gibt Entwicklungsumgebungen (IDE), wie BlueJ. Ich empfehle dir später auf NetBeans oder Eclipse umzusteigen. BlueJ ist nur ein Einsteigertool. Du kannst keine C++ "Befehle" in Java verwenden, allerdings sind viele Sprachelemente ähnliche zB Objektorientierung. Das Konzept hinter Java ist allerdings völlig anders als das von C++.

1

Was möchtest Du wissen?