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
Was für Scanner-Klassen ? Variablen werden übergeben ... (sowas nennt sich auch "Nachrichten" senden) Wo ist der Code ?
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 | } |
> 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 ?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.