Java Problem- Scanner Klassen

OP #1155958
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
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
> 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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.