Java Problem- Scanner Klassen

OP #1155958
Lesenswert?

Hallo Leute hab mal wieder ein Problem mit dem verflixten Java.
Also ich hab eine Hauptklasse und von der werden 4 verschiedene Klassen 
abgeleitet. In jeder hab ich verschiedene Variablen die ich mit Scanner 
Klassen einlesen soll- und hier ist auch das Problem. Ich nahm an dass 
ich das am Besten im Hauptprogramm mache oder?




Gruß Lukas
OP #1175393
Lesenswert?

1
import java.util.Scanner;
2
public class Gehaltsberechnung
3
{
4
  private static final int ANZ_MA = 3;
5
  private static Mitarbeiter[] ma;
6
  private static double bruttosumme;
7

8
  public static void main(String[] args)
9
  {
10
    
11
    
12
  
13
    //int[] a = new int [10];
14
    //Mitarbeiter-Array fuellen, z.B.
15
    ma[0] = new Manager(10,20,30);
16
    ma[1] = new Arbeiter(10,20,30,40,50);
17
    ma[2] = new Angestellter(90,10,20);
18
    //ma[3] = new Angestellter();
19
    //...
20
    System.out.println("Stundenlohn einlesen");
21
    Scanner eingabe = new Scanner (System.in);
22

23
    double stundenlohn = eingabe.nextDouble();
24
    
25
    //Bruttosumme über alle Mitarbeiter berechnen
26
    bruttosumme = 0.0;
27
    for (int i=0; i<ma.length; ++i)
28
     {  bruttosumme += ma[i].monatsBrutto();
29
        System.out.println("Mitarbeitergehalt = "+ma[i].monatsBrutto());
30
        System.out.println("Angestelltengehalt = "+ma[i].monatsBrutto());
31
        System.out.println("Managergehalt = "+ma[i].monatsBrutto());
32
     }
33
  
34
  }
35
}
#1175839
Lesenswert?

> eine Hauptklasse und von der werden 4 verschiedene Klassen abgeleitet
Manager, Arbeiter, ...

> In jeder hab ich verschiedene Variablen die ich mit Scanner
> Klassen einlesen soll- und hier ist auch das Problem.
> Ich nahm an dass ich das am Besten im Hauptprogramm mache oder?
Okay, du scheinst in der Console zu arbeiten.

Du kannst es direkt im Hauptprogramm machen, das geht.
Wenn du in der abgeleiteten Klasse eine Methode implementierst die 
"einlesen" heißt kannst du das alles etwas komfortabler machen.

Wenn du das "einlesen" vom Manager aufrufst fragt der vielleicht nur 
zwei Dinge ab, das "einlesen" vom Arbeiter benötigt aber 3 Sachverhalte 
die man eingeben muss.

Wenn du das alles im Hauptprogramm machst ist es nicht mehr so schön 
wiederverwendbar.
Du solltest im Hauptprogramm nur sagen: "ma[0].einlesen();"

Dann liest er alles ein was er braucht, macht meinetwegen noch eine 
Prüfung.
Es ist doch angenehmer wenn du von dem Objekt ma[0] nur eine Methode 
aufrufen musst damit seine Variablen gefüllt werde. (von dir dann über 
die Konsole :) )


Was war dein Problem?
Machst du die Methode in der Hauptklasse abstrakt und implementierst für 
die abgeleiteten Klassen jeweils eine "einlesen"-Methode ?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren