Hallo nochmal (sorry schon das dritte Mal),
ich muss Stück für Stück Java-Dateien / Klassen schreiben die etwas bestimmtes beinhalten, das hat wunderbar funktioniert (das Problem kommt erst ganz unten).
1.
- Klasse Angestellter erstellen
- Attribute: double stdProMonat und double geldProStunde
- Methode public double berechneMonatseinkommen() berechnet das Einkommen eines Angestellten
- zwei Konstruktoren besitzten
public Angestellter( double arbeitstdProMonat,
double gehaltProStunde )
public Angestellter()
2. Klasse Professor mit Konstruktoren etc. erstellen:
3. Analoge Klasse Mitarbeiter:
Und dann als 4. sollte die (Main) Klasse Uni erstellt werden , 3 Elemente sollten so erzeugt werden:
personal[0]=new Angestellter(22,11.5);
personal[1]=new Professor(121.40);
personal[2]=new Mitarbeiter(40, 15);
Außerdem sollte das Einkommen der drei ANgestellten als Summe ausgegeben werden (mit einer for-Schleife)
Zum ersten:
Ist das so ok? Ich wusste nicht wie ich ein Array deklariere, dass die Vorgaben der Aufgabe umsetzen kann, also habe ich das rausgesucht.
Zum Zweiten:
Hier gibt es offenbar einen Fehler, wie kann ich die Funktion richtig aufrufen?
Bzw. anders (sicher zutreffender) wo habe ich hier grundlegend Fehler gemacht, weshalb das so nicht klappt.
Bspw. hat es mich verwirrt, dass ich in ANgestellter zweimal einen Konstruktor mit selben Namen erstellen sollte...
Die Fehlermeldung (wer sie sehen will):
Danke schonmal für eure Hilfe
ich muss Stück für Stück Java-Dateien / Klassen schreiben die etwas bestimmtes beinhalten, das hat wunderbar funktioniert (das Problem kommt erst ganz unten).
1.
- Klasse Angestellter erstellen
- Attribute: double stdProMonat und double geldProStunde
- Methode public double berechneMonatseinkommen() berechnet das Einkommen eines Angestellten
- zwei Konstruktoren besitzten
public Angestellter( double arbeitstdProMonat,
double gehaltProStunde )
public Angestellter()
Java:
class Angestellter
{
double stdProMonat;
double geldProStunde;
double bonusProMonat;
public double berechneMonatseinkommen(double stdProMonat, double geldProStunde, double bonus)
{
double monatseinkommen = stdProMonat*geldProStunde+bonus;
return monatseinkommen;
}
public Angestellter(double arbeitstdProMonat, double gehaltProStunde)
{
this(arbeitstdProMonat, gehaltProStunde, 0.0);
}
public Angestellter(double arbeitstdProMonat, double gehaltProStunde, double bonus)
{
this.stdProMonat = arbeitstdProMonat;
this.geldProStunde = gehaltProStunde;
this.bonusProMonat = bonus;
}
}
2. Klasse Professor mit Konstruktoren etc. erstellen:
Java:
class Professor extends Angestellter
{
public Professor (double gehaltProStunde)
{
super(160, gehaltProStunde, 0);
}
}
3. Analoge Klasse Mitarbeiter:
Java:
class Mitarbeiter extends Angestellter
{
public Mitarbeiter(double arbeitstdProMonat, double gehaltProStunde)
{
super(arbeitstdProMonat, gehaltProStunde, 500);
}
}
Und dann als 4. sollte die (Main) Klasse Uni erstellt werden , 3 Elemente sollten so erzeugt werden:
personal[0]=new Angestellter(22,11.5);
personal[1]=new Professor(121.40);
personal[2]=new Mitarbeiter(40, 15);
Außerdem sollte das Einkommen der drei ANgestellten als Summe ausgegeben werden (mit einer for-Schleife)
Java:
class Uni
{
public static void main (String args[])
{
Object[] personal = new Object[2];
personal[0]=new Angestellter(22,11.5);
personal[1]=new Professor(121.40);
personal[2]=new Mitarbeiter(40, 15);
double Summe = 0;
for (int i=0; i <= 2; i++)
{
Summe += berechneMonatseinkommen(personal[i]);
}
System.out.println("Die Summe betraegt: "+Summe);
}
}
Zum ersten:
Java:
Object[] personal = new Object[2];
Zum Zweiten:
Java:
Summe += berechneMonatseinkommen(personal[i]);
Hier gibt es offenbar einen Fehler, wie kann ich die Funktion richtig aufrufen?
Bzw. anders (sicher zutreffender) wo habe ich hier grundlegend Fehler gemacht, weshalb das so nicht klappt.
Bspw. hat es mich verwirrt, dass ich in ANgestellter zweimal einen Konstruktor mit selben Namen erstellen sollte...
Die Fehlermeldung (wer sie sehen will):
Uni.java:22: cannot find symbol
symbol : method berechneMonatseinkommen(java.lang.Object)
location: class Uni
Summe += berechneMonatseinkommen(personal);
^
Uni.java:22: inconvertible types
found : <nulltype>
required: double
Summe += berechneMonatseinkommen(personal);
Danke schonmal für eure Hilfe