Ich habe ein kleines Problem mit Konstruktoren in meinem Programm getroffen. Es ist eine einfache Bankdatenbank, die Kundendaten speichert. Ich muss Methoden zur Einzahlung, Abhebung und Überweisung von Bargeld zwischen zwei Konten implementieren. Ich habe diese Art von Konstruktor implementiert neues Bankkonto hinzu:Java mit Standardkonstruktor
public Customer() {
Scanner scan = new Scanner(System.in);
System.out.println("Enter id of customer:");
this.id = scan.nextLine();
File folder = new File("CustomerDataBase" + File.separator + this.id + ".txt");
if(folder.exists()) {
System.out.println("Customer ID already exists!");
System.exit(1);
}
try {
System.out.println("Enter name of customer:");
this.name = scan.nextLine();
System.out.println("Enter surname of customer:");
this.surname = scan.nextLine();
System.out.println("Enter PESEL number of customer:");
this.pesel = scan.nextLine();
System.out.println("Enter address of customer:");
System.out.println(" Street:");
this.adressStreet = scan.nextLine();
System.out.println(" City:");
this.adressCity = scan.nextLine();
System.out.println(" Zip Code: ");
this.zipCode = scan.nextLine();
System.out.println("Enter funds of Customer:");
this.funds = Double.parseDouble(scan.nextLine());
this.saveCustomer();
scan.close();
}catch(NumberFormatException e) {
System.out.println("Error : " + e);
System.exit(1);
}
}
Und dann habe ich eine Methode withdraw
:
static void withdraw (int amount, int id) {
File f = new File("CustomerDataBase" + File.separator + String.valueOf(id) + ".txt");
Scanner fRead;
Customer tempCustomer = new Customer();
try{
fRead = new Scanner(f);
tempCustomer.id = fRead.nextLine();
tempCustomer.name = fRead.nextLine();
tempCustomer.surname = fRead.nextLine();
tempCustomer.pesel = fRead.nextLine();
tempCustomer.adressStreet = fRead.nextLine();
tempCustomer.adressCity = fRead.nextLine();
tempCustomer.zipCode = fRead.nextLine();
tempCustomer.funds = Double.parseDouble(fRead.nextLine()) - id;
fRead.close();
tempCustomer.saveCustomer();
}catch(FileNotFoundException e) {
System.out.println("File not found!");
System.exit(1);
}
}
Die withdraw
Methode liest Daten aus der Datei und habe in den Läden es in der Klasse. Also erstelle ich ein Objekt als Kundentyp. Aber ich möchte nur "einfache" (Standard) -Konstruktoren verwenden, die Java bietet, wenn Sie nicht Ihre eigenen deklarieren. Wie geht das? Ich lese über super():
Anweisung, aber wenn ich es richtig verstanden habe, funktioniert es nur, wenn Sie von einer anderen Klasse erben.
Ihre 'customer' Klasse so die Standard-Ebene wird nicht erstellt ... –
Der Konstruktor, den er deklarierte, ist der Standardkonstruktor, da er ihn als No-Args-Konstruktor deklarierte – pczeus
Deshalb gibt es kein "einfaches" (das Wort 'default' ist hier ein wenig irreführend) –