Möchten Sie mehrere Eingaben vom Benutzer in Java mit Setter-Getter
Hier ist meine User.java Klasse.
public class User {
private String First_Name;
private String Last_Name;
public String getFirst_Name() {
return First_Name;
}
public void setFirst_Name(String first_Name) {
First_Name = first_Name;
}
public String getLast_Name() {
return Last_Name;
}
public void setLast_Name(String last_Name) {
Last_Name = last_Name;
}
public User(String first_Name, String last_Name) {
super();
First_Name = first_Name;
Last_Name = last_Name;
}
public User() {
//TODO Auto-generated constructor stub
}
}
Ich möchte die Eingaben von verschiedenen Benutzern als first name und last name. Dafür hab ich Klasse Input.java als :
public class InputLogic {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("How many name you want to enter:");
int num = sc.nextInt();
int i=0;
while(i < num){
User firstname = new User();
System.out.println(i + "Enter First name:");
String firsttemp = sc.nextLine();
firstname.setFirst_Name(firsttemp);
User lastname = new User();
System.out.println(i + "Enter Last name:");
String lasttemp = sc.nextLine();
lastname.setLast_Name(lasttemp);
i++;
}
}
}
Was falsch mit diesem Ansatz...??
- Was ist das Verhalten, das Sie erwarten, dass das oben genannte nicht tun? Dies ist nicht ein gutes forum für "was ist falsch". Ich denke, wir können alle sehen, Probleme mit dem oben, aber die Frage ist, warum denkst DU, dass es falsch ist, dann könnten wir in der Lage zu helfen, Sie zu beheben, was falsch ist.
User lastname = new User();
wollen Sie einen neuen Benutzer für den Nachname? nicht es werden der Nachname, der für den gleichen Benutzer, dass eingegebene Vorname für?- Befolgen Sie bitte die java-Konventionen. Zum Beispiel
First_Name
solltefirstName
. Lesen Sie mehr über google über Java-Konventionen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das erste, was mir aufgefallen ist, dass Sie verwenden, während Sie mit iterator ich anstelle der normalen for-Schleife.
Zweitens, wenn Sie verwenden möchten, ein beliebiges Objekt außerhalb der Schleife müssen Sie deklarieren es vor.
Sind Sie sicher, dass Sie möchten zwei separate Benutzer für Nachname und Vorname?
Die Schleife legt auch nahe, die Sie haben möchten mehreren Benutzern, so müssten Sie ein array oder eine Liste für die.
Hier ist dein code korrigiert.
String temp = sc.nextLine();
innerhalb der for-SchleifeLesen nextLine-nach dem nextInt. Der return-Zeichen ist anderes zu Lesen, als die Eingabe der Vornamen.
Wenn Sie wissen, dass Objekt der Klasse User ist bedeutungslos ohne
warum nicht legte es in den Konstruktor?
dann erstellen Sie Ihr Objekt nach dem Lesen fname und lname von std-Eingabe als
Mehrere Dinge, die falsch in Ihrem InputLogic Klasse. Einige von Ihnen:
1.Sie erstellen zahlreiche
firstname
,lastname
Objekte und dann zu verlieren, Verweise auf Sie.2.Warum benötigen Sie ein anderes Objekt für
firstname
,lastname
. Sollte nicht Sie gehören zu einer person (dasselbe Objekt)Können Sie denken, der Schaffung einer
ArrayList
oderArray
von Benutzer-ObjektenErstellen Sie zwei verschiedene Benutzer (namens firstname und lastname) anstelle von einem Benutzer mit beiden Namen. Probieren Sie etwas wie:
Und auch deine user-Klasse enthalten muss, die Saiten:
private String Vorname;
private String Nachname;
Gibt es mehrere Fehler auf Ihrem Ansatz:
Du tust es für Firstname und Lastname, die falsch ist.
Auch Sie bei der Erstellung von Instanzen in Ihrer while-Schleife. Nach dieser Schleife wird beendet
youre Instanzen gegangen werden.
Für das speichern mehrerer Benutzer Sie können in einem array
Nach der Prüfung, wie viele Benutzer aus, die Sie einfügen möchten, könnte man ein Array erstellen,
- und in deiner while-Schleife, können Sie die Eingabe und führen Sie die folgenden
Erstellen Sie zwei Instanzen der Benutzer; in dem ersten von Ihnen, sind Sie nur den Vornamen und in der zweiten Eingabe nur der Nachname. Korrigieren Sie den code wie folgt, um sowohl die Eingabe der Namen und Nachnamen für eine einzelne Instanz von User ( also eine person):
Mit dem code von oben, jedoch verlieren Sie die Bedeutung von User-p, weil Sie zwingende p-Informationen jedesmal, wenn die Schleife neu gestartet.
Speichern, die Benutzer in einer ArrayList mindestens wie folgt:
In der ArrayList, Sie haben jetzt alle Benutzer gespeichert, und Sie können Sie jederzeit Zugriff, oder sogar speichern Sie Sie auf einer Datenbank, wenn nötig. 🙂