Envie de prendre de multiples saisies de l'utilisateur en Java avec Setter Getter
Voici mon User.java classe.
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
}
}
Je veux profiter de la contribution des différents utilisateurs que de nom et de prénom. Pour ce que j'ai la classe Input.java comme :
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++;
}
}
}
Quoi de mal avec cette approche...??
- Quel est le comportement que vous attendez que le dessus ne pas le faire? Ce n'est pas un bon forum pour "quel est le problème avec cela". Je pense que nous pouvons tous voir les questions ci-dessus, mais la question est: pourquoi pensez-VOUS qu'il est mauvais alors nous pourrions être en mesure pour vous aider à corriger ce qui est mal.
User lastname = new User();
voulez-vous un nouvel utilisateur pour le nom? il ne faut pas être le nom pour le même utilisateur que vous avez entré le nom de?- Veuillez suivre les conventions java. Par exemple
First_Name
devrait êtrefirstName
. Lire plus sur google sur les Conventions Java.
Vous devez vous connecter pour publier un commentaire.
La première chose que j'ai remarqué, c'est que vous utilisez tout avec itérateur i au lieu de la normale pour la boucle.
Deuxièmement, si vous souhaitez utiliser n'importe quel objet à l'extérieur de la boucle, vous devez le déclarer avant.
Êtes-vous sûr que vous voulez avoir deux utilisateurs distincts pour les nom et prénom?
La boucle vous suggère aussi de vous voulez avoir multipe les utilisateurs, de sorte que vous aurait besoin d'un tableau ou d'une liste pour que.
Voici ton code corrigé.
String temp = sc.nextLine();
intérieur de la boucle forlire un nextLine après la nextInt. Le caractère de retour est d'autre que l'entrée pour la première nom.
Quand vous savez que l'objet de votre classe d'Utilisateur est vide de sens sans
pourquoi ne pas mettre dans le constructeur?
ensuite créer votre objet après la lecture de la fname et lname contre les mst entrée
Plusieurs choses incorrectes dans votre InputLogic classe. Deux d'entre eux:
1.Vous êtes en train de créer de nombreux
firstname
,lastname
des objets et de perdre ses références.2.Pourquoi avez-vous besoin d'autre objet pour
firstname
,lastname
. Ne devraient-ils pas appartenir à une seule personne (même objet)Vous pouvez penser à la création d'un
ArrayList
ouArray
des objets utilisateurVous êtes à la création de deux utilisateurs différents (appelé firstname et lastname) au lieu d'un utilisateur contenant les deux noms. Essayez quelque chose comme:
Et aussi votre classe d'utilisateur doit contenir les chaînes:
private String Prenom;
private String Nom;
Il y a plusieurs erreurs sur votre approche:
Vous le faites pour Firstname et Lastname qui est faux.
Aussi que vous êtes la création de votre instances de votre tout-boucle. Après cette boucle se termine
vous êtes Instances auront disparu.
Pour l'enregistrement de plusieurs utilisateurs, vous pouvez utiliser un tableau
Après vérification de combien d'Utilisateurs que vous souhaitez insérer, vous pouvez créer un Tableau
et dans votre boucle, vous pouvez vérifier pour l'entrée et effectuez les opérations suivantes
Vous êtes à la création de deux instances de l'Utilisateur; dans la première, vous entrez seulement le nom de la première et dans la seconde, vous entrez seulement le nom de famille. Corriger votre code comme suit dans l'ordre de saisir à la fois le nom et le prénom pour une instance unique de l'Utilisateur ( qui est une personne):
Avec le code ci-dessus, cependant, vous sont en train de perdre le sens de l'Utilisateur p, parce que vous écrasez p informations à chaque fois que la boucle redémarre.
Enregistrer les Utilisateurs dans un ArrayList, au moins comme suit:
Dans la liste de tableaux, vous avez maintenant tous les Utilisateurs enregistrés, et vous pouvez y accéder à tout moment, ou même de les enregistrer dans une base de données si nécessaire. 🙂