mikrocontroller.net

Forum: PC-Programmierung Java Problem- Scanner Klassen


Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mike J. (emjey)
Datum:

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

Wo ist der Code ?

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
import java.util.Scanner;
public class Gehaltsberechnung
{
  private static final int ANZ_MA = 3;
  private static Mitarbeiter[] ma;
  private static double bruttosumme;

  public static void main(String[] args)
  {
    
    
  
    //int[] a = new int [10];
    //Mitarbeiter-Array fuellen, z.B.
    ma[0] = new Manager(10,20,30);
    ma[1] = new Arbeiter(10,20,30,40,50);
    ma[2] = new Angestellter(90,10,20);
    //ma[3] = new Angestellter();
    //...
    System.out.println("Stundenlohn einlesen");
    Scanner eingabe = new Scanner (System.in);

    double stundenlohn = eingabe.nextDouble();
    
    //Bruttosumme über alle Mitarbeiter berechnen
    bruttosumme = 0.0;
    for (int i=0; i<ma.length; ++i)
     {  bruttosumme += ma[i].monatsBrutto();
        System.out.println("Mitarbeitergehalt = "+ma[i].monatsBrutto());
        System.out.println("Angestelltengehalt = "+ma[i].monatsBrutto());
        System.out.println("Managergehalt = "+ma[i].monatsBrutto());
     }
  
  }
}

Autor: Mike J. (emjey)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah okay danke es funktionier!


Vielen Dank nochmals!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.