OOP/ Listen...etc...

Supra

Bekanntes Mitglied
Moin,
ich lerne Java und hab wieder eine Frage. :S Ich habe momentan eine Größere Aufgabe aber komme kein Stück voran :S. Also ein Teil ist ich muss einen Kunden erstellen mit Kundennummer, vorname und Name, soll aber prüfen das die Kundennumme nicht doppelt erstellt wird. Hänge da schon etwas länger drann. :bahnhof:
Hier mal mein Teil:

Java:
import java.util.*;
public class Bank
{
    List<Kunde> kunden = new ArrayList<Kunde>();

    public static void main(String[] args)
    {
        Bank bank = new Bank();
        bank.erstelleKunde(10000, "Michael", "Mustermann");
        bank.erstelleKunde(10000, "Max", "Mustermann");
        bank.erstelleKunde(10001, "Max", "Mustermann");

        for(Kunde kunde : kunden)
        {
            System.out.println(kunden);
        }

    }
    public void erstelleKunde(long kundenNummer, String vName, String name)
    {
        for(int i = 0; i < kunden.size(); i++)
        {
            if(kundenNummer == kunden.get(i).getKundenNummer()|| kundenNummer == 0)
            {
            System.out.print("Die Kundennummer ist bereits vergeben! Bitte wählen Sie eine andere aus!");
            }
            else
            {
                Kunde kunde = new Kunde();
                kunde.setKundenNummer(kundenNummer);
                kunde.setKundenVorname(vName);
                kunde.setKundenName(name);
                kunden.add(kunde);
            }
        }
    }
}

Java:
import java.util.*;
class Kunde
{
    private long kundenNummer;
    private String kundenName;
    private String kundenVorname;


    public void setKundenVorname(String vName)
    {
        kundenVorname = vName;
    }
    public String getKundenVorname()
    {
        return kundenVorname;
    }


    public void setKundenNummer(long nummer)
    {
        kundenNummer = nummer;
    }
    public long getKundenNummer()
    {
        return kundenNummer;
    }


    public void setKundenName(String name)
    {
        kundenName = name;
    }
    public String getKundenName()
    {
        return kundenName;
    }

    @Override
    public String toString()
    {
        return kundenNummer+ "" +" "+ "Kundenname: " + kundenVorname + " "+ kundenName;
    }
}
Naja ich hoffe mein versuch ist nicht all zu schlecht :S.
Fehlermeldung:
Bank.java:13:non-static variable kunden cannot be referenced from a static context
for(Kunde kunde : kunden)
^
Das gleiche bei System.out.println(kunden);.
^
 

faetzminator

Gesperrter Benutzer
Nein, ich spreche von Z13.
Java:
for(Kunde kunde : bank.kunden) {
    System.out.println(kunde);
}
Ist aber nur sichtbar, da du dich in der gleichen Klasse befindest. Schöner wären Getter (und ggf. Setter):
Java:
for(Kunde kunde : bank.getKunden()) {
    System.out.println(kunde);
}

// ...

public List<Kunde> getKunden() {
    return kunden; // oder nach Wahl auch Collections.unmodifiableList(kunden)
}
 

Supra

Bekanntes Mitglied
Leider muss ich
Java:
public void erstelleKunde(long kundenNummer, String vName, String name)
{
}
so lassen, weil das so vorgegeben ist :S.
 

Supra

Bekanntes Mitglied
Nene mein ich ja auch nicht :), ich habe halt nur das problem das ich jetzt keinen der kunden ausgegeben bekomme, liegt das an meiner Methode?:bahnhof:
 

jgh

Top Contributor
das liegt imho daran, dass du über ein leeres Array iterierst und dort dann den Kunden -in Abhängigkeit von vergebener KdNr addest, oder nicht-! Da deine ArrayList aber eine size() von 0 hat, springt er garnicht in die Schleife...
 

Supra

Bekanntes Mitglied
Ok das habe ich mir gedacht, also müsste ich eine do-while schleife machen, damit er dies mindestens einmal ausführt? Wäre das eine Möglichkeit?
 

faetzminator

Gesperrter Benutzer
Nein. Gar nicht in einer Schleife, nur die Überprüfung willst du dort machen. So in etwa würd ich das machen:
Java:
public void erstelleKunde(long kundenNummer, String vName, String name) {
    if (checkKundenNummer(kundenNummer)) {
        Kunde kunde = new Kunde();
        kunde.setKundenNummer(kundenNummer);
        kunde.setKundenVorname(vName);
        kunde.setKundenName(name);
        kunden.add(kunde);
    } else {
        System.out.print("Die Kundennummer ist bereits vergeben! Bitte wählen Sie eine andere aus!");
    }
}

protected boolean checkKundenNummer(long kundenNummer) {
    if (kundenNummer <= 0) {
        return false;
    }
    for (Kunde kunde : kunden) {
        if (kundenNummer == kunde.getKundenNummer()) {
            return false;
        }
    }
    return true;
}
 

jgh

Top Contributor
kannst du sicherlich auch so lösen, ich pers. würde eher den Sonderfall abdecken, dass kein Kunde in der ArrayList ist, also wenn
Code:
kunden.size()==0
dann adde einfach den Kunden, weil das überprüfen ob die KdNr schon vergeben ist, obsolet ist...ansonsten überprüfe ob es die KdNr schon gibt und handel dann entsprechend. Wobei ich meine zu wissen, dass du da noch ein wenig im Code nacharbeiten müsstest, ohne Gewähr ;)
 

faetzminator

Gesperrter Benutzer
jgh, warum das denn? Wenns keine Einträge gibt, wird einfach 0 mal durch die Liste iteriert.
Die Implementation von Supra war so oder so falsch, sie hätte jeden Kunden 0 bis n mal hinzugefügt, wobei n die Grösse der bisherigen Liste war.
 

jgh

Top Contributor
mein Beitrag war nicht auf deine Lösung bezogen, sondern auch die des TO´s
Deine Lösung sieht imho recht elegant und richtig aus...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Listen in Listen in Listen ... ??? Java Basics - Anfänger-Themen 2
XWing listen Java Basics - Anfänger-Themen 7
FunkyPhil94 addLast und addFirst bei Listen Java Basics - Anfänger-Themen 6
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
S Lineare listen verkettung Java Basics - Anfänger-Themen 7
S Listen Java Basics - Anfänger-Themen 12
S Listen , Nodes am ende anängen Java Basics - Anfänger-Themen 6
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
M Java Listen Java Basics - Anfänger-Themen 4
V einfach verkettete Listen Java Basics - Anfänger-Themen 10
A PhoneBook mit verketteten listen Java Basics - Anfänger-Themen 48
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
G Java Listen und Iterator Java Basics - Anfänger-Themen 2
S Erklaerung Listen Java Basics - Anfänger-Themen 27
J Implementierung Listen-ADT Java Basics - Anfänger-Themen 131
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
L Skip Listen Java Basics - Anfänger-Themen 5
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
L Wie testet man (selbstgeschriebene) Listen sinnvoll? Java Basics - Anfänger-Themen 2
F Problem mit Listen Java Basics - Anfänger-Themen 5
J Listen Operationen Java Basics - Anfänger-Themen 4
O Unterschied Arrays, Listen, Mengen Java Basics - Anfänger-Themen 24
J Eine Liste von Listen erstellen Java Basics - Anfänger-Themen 11
A Sortierte Listen Java Basics - Anfänger-Themen 4
L Datenstrukturen/ Listen Java Basics - Anfänger-Themen 17
A Was könnten typische Prüfungsaufgaben zum Thema lineare, verkettete Listen sein? Java Basics - Anfänger-Themen 5
L Listen und Felder Java Basics - Anfänger-Themen 2
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
R Arrays und Listen Java Basics - Anfänger-Themen 1
R Listen richtig implementieren Java Basics - Anfänger-Themen 3
F Multidimensionale Listen Java Basics - Anfänger-Themen 3
F Wie String in unterschiedliche Listen teilen Java Basics - Anfänger-Themen 7
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
T Objekte in Listen vererben Java Basics - Anfänger-Themen 3
A Klassen Klassen und Listen... Java Basics - Anfänger-Themen 5
Hacer Operationen einfach verketteter Listen Java Basics - Anfänger-Themen 22
S Methoden Vergleichen von zwei Listen in der Geschwindigkeit von O(n+m) Java Basics - Anfänger-Themen 32
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
C Listen Java Basics - Anfänger-Themen 3
C Zwei Listen verbinden Java Basics - Anfänger-Themen 1
C Zahlen merken mit Hilfe von Arrays/Listen Java Basics - Anfänger-Themen 2
E Feld von verketteten Listen Java Basics - Anfänger-Themen 11
T Überprüfung einer Aufgabe zu verketteten Listen Java Basics - Anfänger-Themen 5
S Liste mit Objekten und Listen Java Basics - Anfänger-Themen 9
JarJarBigs Frage zu Listen Java Basics - Anfänger-Themen 2
N verkettete Listen Java Basics - Anfänger-Themen 4
O Listen sort-Methode Java Basics - Anfänger-Themen 1
I Listen sortieren bei mehreren Listen zu einer Java Basics - Anfänger-Themen 2
L Lineare Listen Java Basics - Anfänger-Themen 2
S Listen Objekte nach LocalDateTime sortieren Java Basics - Anfänger-Themen 2
D Methoden Listen generieren Java Basics - Anfänger-Themen 4
A Sichtbarkeit in Methoden/Listen Java Basics - Anfänger-Themen 3
M verkettete Listen Java Basics - Anfänger-Themen 1
D Klausur Vorbereitung: Listen, Rekursion, Bäume & Vererbung Java Basics - Anfänger-Themen 3
S Vergleich von Listen Java Basics - Anfänger-Themen 6
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 2
M Listen erstellen mit unterschiedlichen Reihenfolgen Java Basics - Anfänger-Themen 3
I Zwei Listen vergleichen bei n:m Beziehung Java Basics - Anfänger-Themen 2
I Zwei Listen: Wenn nicht vorhanden löschen Java Basics - Anfänger-Themen 4
I Prüfen von zwei Listen Java Basics - Anfänger-Themen 1
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
S Unsortierte Listen - Frage zur "Verkettung" Java Basics - Anfänger-Themen 1
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 7
I Listen, for - Schleifen Java Basics - Anfänger-Themen 8
P Listen Size stimmt nicht Java Basics - Anfänger-Themen 5
O Objekt Listen serialisierung und deserialisieren Java Basics - Anfänger-Themen 5
L Collections Objekte in Listen speichern Java Basics - Anfänger-Themen 3
G 2 Listen kombinieren und nach abc sortieren Java Basics - Anfänger-Themen 9
D Annonyme Innere Klasse: Listen mit geradem Index ausgeben Java Basics - Anfänger-Themen 6
G Listen sortieren Java Basics - Anfänger-Themen 3
G Generic und Listen Java Basics - Anfänger-Themen 8
R SQL ähnlicher Filter für Java Listen Java Basics - Anfänger-Themen 2
Y Collections 4 Listen Java Basics - Anfänger-Themen 14
E Listen Java Basics - Anfänger-Themen 2
V Methoden Verkettete Listen Index eines Elementes ausgeben Java Basics - Anfänger-Themen 10
B Listen Java Basics - Anfänger-Themen 3
B eigene klasse in listen eintragen Java Basics - Anfänger-Themen 6
B Map per Listen Java Basics - Anfänger-Themen 2
S Erfahrungswerte von schnelles durchlaufen von Listen mit 2 Werten Java Basics - Anfänger-Themen 10
Joew0815 Problem mit Listen: add() Java Basics - Anfänger-Themen 11
P Zeichenorientierte & Serialisierte Datenverarbeitung Listen Java Basics - Anfänger-Themen 8
E Listen und Generics Java Basics - Anfänger-Themen 9
L dynamisches erzeugen von array Listen Java Basics - Anfänger-Themen 7
E Listen und Duplikate Java Basics - Anfänger-Themen 2
R Hilfe bei Listen Java Basics - Anfänger-Themen 10
F Collections Liste von Listen Java Basics - Anfänger-Themen 21
A Methoden Anfängerfrage: 2 Listen Vergleichen Java Basics - Anfänger-Themen 7
walker23m C++ Listen iteratoren in Java umwandeln Java Basics - Anfänger-Themen 3
X Listen und verschiedene Methoden Java Basics - Anfänger-Themen 6
N Listen Java Basics - Anfänger-Themen 5
S Listen Klasse selbst schreiben Java Basics - Anfänger-Themen 6
propra Objekte in mehreren Listen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben