Modellierung eines Bankkunden

1207

Aktives Mitglied
Hallo :)
ich habe ein Interface Customer gegeben:
Java:
public interface Customer {

    /**
     * returns the last name of the customer.
     * @return the last name of the customer.
     */
    String getLastname();

    /**
     * returns the unique customer number.
     * @return the unique customer number.
     */
    int getCustomerNumber();

}

Jetzt soll ich eine Klasse BankCostumer schreiben, die dieses Interface implementiert und ausserdem folgende Attribute eines Kunden verwalten soll: Kundennumer, Vorname, Nachname, Adresse und Geburtsdatum und für jedes dieser privaten Attribute soll es eine Getter- und Setter-Methode geben.

Das habe ich dazu gemacht:

Java:
import java.util.Scanner;

public class BankCustomer implements Customer{

    private String lastname;
    private String firstname;
    private int customerNumber;
    private String strasse;
    private String ort;
    private String geburtsdatum;

    public BankCustomer(String lastname,String firstname, int customerNumber,String strasse,String ort, String geburtsdatum){
        this.lastname = lastname;
        this.firstname = firstname;
        this.customerNumber = customerNumber;
        this.strasse = strasse;
        this.ort = ort;
        this.geburtsdatum = geburtsdatum;
    }

    public void setLastname(String lname){
        lastname = lname;
    }
    public String getLastname() {
        return lastname;
    }

    public void setFirstname(String fname){
        firstname = fname;
    }
    public String getFirstname() {
        return firstname;
    }

    public void setCustomerNumber(int number){
        customerNumber = number;
    }
    public int getCustomerNumber() {
        return customerNumber;
    }

    public void setStrasse(String stra){
        strasse = stra;
    }
    public String getStrasse() {
        return strasse;
    }

    public void setOrt(String wohnort){
        ort = wohnort;
    }
    public String getOrt() {
        return ort;
    }

    public void setGeburtsdatum(String gebDatum){
        geburtsdatum = gebDatum;
    }
    public String getGeburtsdatum() {
        return geburtsdatum;
    }


    public static void main(String[] args){

       BankCustomer eins = new BankCustomer( lastname ,firstname, customerNumber, strasse, ort, geburtsdatum);

        Scanner laname = new Scanner(System.in);
        System.out.print("Nachname bitte: ");
        String lastname = laname.next();
        eins.setLastname(lastname);

        Scanner firname = new Scanner(System.in);
        System.out.print("Vorname bitte: ");
        String firstname = firname.next();
        eins.setFirstname(firstname);

        Scanner number = new Scanner(System.in);
        System.out.print("Kundennummer bitte: ");
        String custNumber = number.next();
        int customerNumber = Integer.parseInt(custNumber);
        eins.setCustomerNumber(customerNumber);

        Scanner stras = new Scanner(System.in);
        System.out.print("Strasse und Hausnummer bitte: ");
        String strasse = stras.next();
        eins.setStrasse(strasse);

        Scanner wohnort = new Scanner(System.in);
        System.out.print("PLZ und Wohnort bitte: ");
        String ort = wohnort.next();
        eins.setOrt(ort);

        Scanner datum = new Scanner(System.in);
        System.out.print("Geburstadtum bitte: ");
        String gebDatum = datum.next();
        eins.setGeburtsdatum(gebDatum);

        System.out.println("Nachname: " + eins.getLastname());

    }
}

Aber jetzt habe ich das Problem, dass meine eingegebenen Daten nicht auf meinen BankCustomer eins gespeichert werden wollen und mir werden dafür folgende Fehler angezeigt:

66:java: non-static variable lastname cannot be referenced from a static context
66:java: non-static variable firstname cannot be referenced from a static context
66:java: non-static variable customerNumber cannot be referenced from a static context
66:java: non-static variable strasse cannot be referenced from a static context
66:java: non-static variable ort cannot be referenced from a static context
66:java: non-static variable geburtsdatum cannot be referenced from a static context

Woran liegt das?
 

JUserToto

Aktives Mitglied
Hallo,

du erzeugst den Bankkunden und übergibst die eigenen Instanzvariablen (auf die du außerhalb der Klasse natürlich keinen Zugriff hast) seinem Konstruktor. (Du setzt die Variablen quasi alle auf sich selbst) Das macht so keinen Sinn.
Entweder du schreibst einen neuen Konstruktor ohne Parameter, oder du erzeugst den Bankkunden erst am Ende der Main Methode und übergibst all die Strings, die du mit dem Scanner gesammelt hast.

lg Toto
 
Zuletzt bearbeitet:

1207

Aktives Mitglied
Dankeschön!
Ich habe jetzt meine main-Methode so geändert:

Java:
public static void main(String[] args){


        Scanner s = new Scanner(System.in);

        System.out.print("Nachname bitte: ");
        String lastname = s.next();

        System.out.print("Vorname bitte: ");
        String firstname = s.next();

        System.out.print("Kundennummer bitte: ");
        int customerNumber = s.nextInt();

        System.out.print("Strasse und Hausnummer bitte: ");
        String strasse = s.next();

        System.out.print("PLZ und Wohnort bitte: ");
        String ort = s.next();

        System.out.print("Geburstadtum bitte: ");
        String gebDatum = s.next();

        s.close();



        BankCustomer eins = new BankCustomer( lastname ,firstname, customerNumber, strasse, ort, geburtsdatum);
        eins.setLastname(lastname);
        eins.setFirstname(firstname);
        eins.setCustomerNumber(customerNumber);
        eins.setStrasse(strasse);
        eins.setOrt(ort);
        eins.setGeburtsdatum(gebDatum);






        System.out.println("Nachname: " + eins.getLastname());

    }
}

und von lastname bis ort klappt's jetzt auch, aber für das Geburtsdatum wird mir wieder das hier angezeigt:
java: non-static variable geburtsdatum cannot be referenced from a static context

Das verstehe ich jetzt gar nicht, vom Prinzip ist das doch genau gleich wie bei denen davor?
 

MR_UNIX

Bekanntes Mitglied
Ich glaube, du musst diese Zeile
Java:
BankCustomer eins = new BankCustomer( lastname ,firstname, customerNumber, strasse, ort, geburtsdatum);
so ändern:
Java:
BankCustomer eins = new BankCustomer( lastname ,firstname, customerNumber, strasse, ort, gebDatum);

Weil du sonst "geburtsdatum", eine non-static Klassenvariable nutzt, und nicht die lokale Variable, in der die Eingabe des Users enthalten ist.
 

njans

Top Contributor
Java:
        BankCustomer eins = new BankCustomer( lastname ,firstname, customerNumber, strasse, ort, geburtsdatum);
        eins.setLastname(lastname);
        eins.setFirstname(firstname);
        eins.setCustomerNumber(customerNumber);
        eins.setStrasse(strasse);
        eins.setOrt(ort);
        eins.setGeburtsdatum(gebDatum);
geburtsdatum verwendest du immer noch. Außerdem ist das, einfach nur redundant. Wozu gibst du dem Konstruktor erst alle Werte und setzt diese dann noch einmal? Eines von beiden reicht.
 

JUserToto

Aktives Mitglied
Hey,

mach dir einmal klar, was der Konstruktor macht.
Die Werte die du dort übergibst sollen dazu dienen das Objekt "BankCustomer" zu initialisieren.

Wenn du ein Rechteck hast und dieses Rechteck hat als Instanzvariablen int laenge und int breite, dann kannst du einen Konstruktor schreiben mit den Parametern (int rLaenge, int rBreite) mit denen du das Rechteck direkt initialisieren kannst. Diesen rufst du dann so auf:

Rechteck rechteck = new Rechteck(2, 4);

Bei deinem Bankkunden kannst du also auch Daten wie Vorname, Nachname etc. direkt mitgeben. Der neue Bankkunde bekommt dann direkt diese Daten. Diese danach nochmal mit einem Setter zu setzen ist überflüssig. Das müsstest du nur, wenn du die Daten vorher nicht schon mit dem Konstruktor gesetzt hättest.
Also für das Rechteck Beispiel so:

Rechteck rechteck = new Rechteck();
rechteck.setLaenge(2);
rechteck.setBreite(4);

lg Toto
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Modellierung eines Programms in UML (Klassendiagramm) Java Basics - Anfänger-Themen 2
M Modellierung eines trivialen Web-Shops Java Basics - Anfänger-Themen 12
I Arbeitszeit / Zeiterfassung - Gedanken und Modellierung Java Basics - Anfänger-Themen 122
L Modellierung Widerstandsnetzwerk Java Basics - Anfänger-Themen 15
M Problem in der Modellierung Java Basics - Anfänger-Themen 20
N Modellierung, vererbung, Java Basics - Anfänger-Themen 163
D Verständnisfrage zur Modellierung einer HDD Java Basics - Anfänger-Themen 17
F OO - Modellierung Java Basics - Anfänger-Themen 24
S Modellierung von Karteneffekten ähnlich YUGIOH Java Basics - Anfänger-Themen 2
B Klassen Modellierung einer Kneipe Java Basics - Anfänger-Themen 86
A Modellierung Java Basics - Anfänger-Themen 8
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
M Parse-Tree eines statements darstellen Java Basics - Anfänger-Themen 0
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
A Rekursive Implementation eines Codes Java Basics - Anfänger-Themen 4
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
M Wie erreiche ich das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 2
M Wie erreiche ich es das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 0
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
A Optimierung eines Programms: Mergen der Dateien Java Basics - Anfänger-Themen 23
melisax Alle Möglichkeiten eines Wortes angeben Java Basics - Anfänger-Themen 3
A Java, verarbeitung eines xml-files Java Basics - Anfänger-Themen 2
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
C Überprüfen eines Programms auf Syntaxfehler Java Basics - Anfänger-Themen 3
S Wie kann ich den Bereich eines Integers begrenzen? Java Basics - Anfänger-Themen 2
nonickatall Grundsätzliches Verständnisproblem des Aufbaus eines Programms Java Basics - Anfänger-Themen 19
B Downgrade eines bestehenden Projektes Java Basics - Anfänger-Themen 5
amelie123456 Geschwindigkeit der Methode bewegeDich eines Objekts ändern Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J maximaler Wert eines Integers Java Basics - Anfänger-Themen 14
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Z Rückgabe eines Values in umgekehrte richtung Java Basics - Anfänger-Themen 5
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
M Benutzereingabe eines Codes verbessern Java Basics - Anfänger-Themen 3
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
C Wie kann ich Versionen eines Projektes in Eclipse erstellen? Java Basics - Anfänger-Themen 3
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
A Teilen eines Arrays Java Basics - Anfänger-Themen 5
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
R Löschen und ausgeben eines Teilbaums Java Basics - Anfänger-Themen 3
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
M Hilfe bei Strukturierung eines Buchungssystems Java Basics - Anfänger-Themen 3
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
A Freie Stelle eines Arrays Java Basics - Anfänger-Themen 17
C Erstellen eines Widerstandsnetzwerks Java Basics - Anfänger-Themen 10
C Methode Seiten tauschen eines erstellten Rechtecks mit Seite A und B Java Basics - Anfänger-Themen 9
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
F Berechnung der Rektaszension und Deklination eines Sterns Java Basics - Anfänger-Themen 7
1 Erste Schritte Was denkt ihr über eines meiner ersten Javaprogramme? Java Basics - Anfänger-Themen 2
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
D Input/Output Problem bei der Benutzereingabe eines Befehls Java Basics - Anfänger-Themen 14
H Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben Java Basics - Anfänger-Themen 9
M Hinzufügen eines Objekts auf ein Map Java Basics - Anfänger-Themen 4
M Auf einen Array innerhalb eines Objekts zugreifen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben