/*
*
Created on 05.04.2004
*
* To
change the template for this generated file go to
*
Window>Preferences>Java>Code Generation>Code and Comments
*/
package Methode_Klassen_etc;
/**
*
@author MÜLLER
*
* To
change the template for this generated type comment go to
*
Window>Preferences>Java>Code Generation>Code and Comments
*/
/*
Gehaltsberechnung.java */
import java.util.Date;
// eine
abstacte Klasse, von der andere Klassen abgeleitet werden sollen
abstract class Mitarbeiter {
int persnr;
String name;
Date eintritt;
public Mitarbeiter() {
}
// Diese Methode wird als abstract definiert, da sich je nach "Art des
Mitarbeiters",
// das Monatsbrutto anders zusammensetzt
public abstract double monatsBrutto();
}
//
abgeleitete Klasse Arbeiter
class Arbeiter extends
Mitarbeiter {
double stundenlohn = 10;
double anzahlstunden = 160;
double ueberstundenzuschlag;
double anzahlueberstunden;
double schichtzulage;
public double monatsBrutto() {
return stundenlohn * anzahlstunden
+ ueberstundenzuschlag *
anzahlueberstunden
+ schichtzulage;
}
}
//abgeleitete
Klasse Angestellter
class Angestellter extends
Mitarbeiter {
double grundgehalt = 1000;
double ortszuschlag = 200;
double zulage = 100;
public double monatsBrutto() {
return grundgehalt + ortszuschlag + zulage;
}
}
//abgeleitete
Klasse Manager
class Manager extends
Mitarbeiter {
double fixgehalt = 2000;
double provision1;
double provision2;
double umsatz1;
double umsatz2;
public double monatsBrutto() {
return fixgehalt
+ umsatz1 * provision1 / 100
+ umsatz2 * provision2 / 100;
}
}
public class Gehaltsberechnung {
//1
private static final int ANZ_MA = 3;
private static Mitarbeiter[] ma;
private static double bruttosumme;
public static void main(String[] args) {
//2
ma = new Mitarbeiter[ANZ_MA];
//Mitarbeiter-Array füllen, z.B.
ma[0] = new Manager();
ma[1] = new Arbeiter();
ma[2] = new Angestellter();
//...
for (int i = 0; i < ma.length; ++i) { //3
System.out.println(ma[i].monatsBrutto());
}
}
}