Hallo,
ich arbeite immer noch an einem Listing aus dem Buch "Java 7 for Dummies", Kapitel 8. Bin zwar schon ein Stück weiter am Lesen, hab das Listing aber noch nicht ganz verstanden ???:L und will keine Lücken lassen.
Ich werd also nicht drum rum kommen, hier mal den kompletten Code zu posten. Vieleicht kann mir einer hier etwas auf die Sprünge helfen. Also, eigtl. sind es zwei Listings mit je einer Klasse.
Das erste, die Klasse "Mitarbeiter":
Das zweite, die Klasse "Gehaltsabrechnung":
Die Datei, die da referenziert wird, häng ich an, ist nicht groß, nur ein Beispiel halt.
Erst mal meine Fragen zum ersten: Was es tut, ist klar. Es werden einige Zugriffsmethoden definiert für die Eigenschaften der Klasse und eine Methode, die das alles ausgibt. In der Methode steckt meine Frage: Die Eigenschaften "name" und "funktion" sind klar, die existieren und können somit ausgegeben werden. Aber was ist mit "betrag"? Der kommt letztendlich aus einer Datei, die in dem zweiten Listing angegeben wird. Aber woher weiß das Programm, das die Zahl in der Datei die Variable "betrag" sein soll?
Dann hab ich natürlich auch eine Frage zum zweiten: Da wird eine Variable "diskScanner" initiiert, die auf die Datei verweist, klar. In der unteren Hälfte ist dann aber plötzlich von einer Scanner-Variable namens "aScanner" die Rede, auf die sich die Methode "bezahleMitarbeiter" bezieht. Meine Frage dazu: Wie weiß das Java-Programm, daß es sich bei dieser Scanner-Variable "aScanner" um die Datei handelt, die vormals von der Scanner-Variablen "diskScanner" referenziert wurde?
Vielen Dank im Voraus! :applaus:!
Gruß,
Javaswillerdenn
ich arbeite immer noch an einem Listing aus dem Buch "Java 7 for Dummies", Kapitel 8. Bin zwar schon ein Stück weiter am Lesen, hab das Listing aber noch nicht ganz verstanden ???:L und will keine Lücken lassen.
Ich werd also nicht drum rum kommen, hier mal den kompletten Code zu posten. Vieleicht kann mir einer hier etwas auf die Sprünge helfen. Also, eigtl. sind es zwei Listings mit je einer Klasse.
Das erste, die Klasse "Mitarbeiter":
Java:
import static java.lang.System.out;
public class Mitarbeiter
{
private String name;
private String funktion;
public void setName(String nameIn) {
name=nameIn;
}
public String getName() {
return name;
}
public void setFunktion(String funktionIn) {
funktion=funktionIn;
}
public String getFunktion() {
return funktion;
}
public void zahleGehalt(double betrag) {
out.printf("Zahlen Sie an %s", name);
out.printf(" (%s, args)", funktion);
out.printf(" ***%, .2f Euro\n", betrag);
}
}
Das zweite, die Klasse "Gehaltsabrechnung":
Java:
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
class Gehaltsabrechnung {
public static void main(String args[]) throws IOException {
Scanner diskScanner =
new Scanner(new File("MitarbeiterInfo.txt"));
for (int maNum=1; maNum<=3; maNum++) {
bezahleMitarbeiter(diskScanner);
}
}
static void bezahleMitarbeiter (Scanner aScanner) {
Mitarbeiter einMa = new Mitarbeiter();
einMa.setName(aScanner.nextLine());
einMa.setFunktion(aScanner.nextLine());
einMa.zahleGehalt(aScanner.nextDouble());
aScanner.nextLine();
}
}
Die Datei, die da referenziert wird, häng ich an, ist nicht groß, nur ein Beispiel halt.
Erst mal meine Fragen zum ersten: Was es tut, ist klar. Es werden einige Zugriffsmethoden definiert für die Eigenschaften der Klasse und eine Methode, die das alles ausgibt. In der Methode steckt meine Frage: Die Eigenschaften "name" und "funktion" sind klar, die existieren und können somit ausgegeben werden. Aber was ist mit "betrag"? Der kommt letztendlich aus einer Datei, die in dem zweiten Listing angegeben wird. Aber woher weiß das Programm, das die Zahl in der Datei die Variable "betrag" sein soll?
Dann hab ich natürlich auch eine Frage zum zweiten: Da wird eine Variable "diskScanner" initiiert, die auf die Datei verweist, klar. In der unteren Hälfte ist dann aber plötzlich von einer Scanner-Variable namens "aScanner" die Rede, auf die sich die Methode "bezahleMitarbeiter" bezieht. Meine Frage dazu: Wie weiß das Java-Programm, daß es sich bei dieser Scanner-Variable "aScanner" um die Datei handelt, die vormals von der Scanner-Variablen "diskScanner" referenziert wurde?
Vielen Dank im Voraus! :applaus:!
Gruß,
Javaswillerdenn