Forum: PC-Programmierung Java Problem- Scanner Klassen


von Lukas M. (luke_)


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

von Mike J. (emjey)


Lesenswert?

Was für Scanner-Klassen ?
Variablen werden übergeben ... (sowas nennt sich auch "Nachrichten" 
senden)

Wo ist der Code ?

von Lukas M. (luke_)


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
}

von Mike J. (emjey)


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 ?

von Lukas M. (luke_)


Lesenswert?

Ah okay danke es funktionier!


Vielen Dank nochmals!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.