création de plusieurs objets en java poo
je ne peux pas juste obtenir ma tête autour de cela.
j'ai une classe d'utilisateur:
public class user {
private String name;
private int age;
public user()
{
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public void setName(String kname)
{
name = kname;
}
public void setAge(int kage)
{
alter = kage;
}
}
et je suis de la création et de la liste des utilisateurs au sein de mon userUI classe
public class PersonalUI {
public static void main (String args[]) {
int menu = 0;
int i = 0;
while (menu != 3)
{
System.out.println("Please choose: \n (1) Create User \n (2) List User \n (3) Quit");
menu = Console.readInt();
if (menu = 1)
{
User user[i] = new User();
System.out.println("Please enter a name");
String kname = Console.readString();
user[i].setName(kname);
}
}
Mon Problème: Comment puis-je créer plusieurs objets que j'obtiens une erreur de l'Utilisateur user[i] = new Utilisateur(); suppose que je suis en train de faire le mal
Vous devez vous connecter pour publier un commentaire.
Tableau n'est pas la voie à suivre dans votre cas. Utilisation Liste:
Vous ne savez pas le nombre d'utilisateurs qui seront inscrits à l'avant - ainsi l'utilisation dynamique de la structure de données.
Votre problème est que vous essayez de faire deux choses en même aller : créer un tableau et d'attribuer de la valeur à certains de ses éléments.
C'est la façon dont vous devriez utiliser un tableau:
Exactement en raison de la constante prédéterminée je conseille à l'aide de la Liste.
Vous pouvez vérifier cette erreur.
Beaucoup pensent que la déclaration, Utilisateur[i] = new Utilisateur () crée un objet de l'Utilisateur, mais il crée une variable de référence. La Conversion de la variable de référence d'objet est requise comme suit:
utilisateur[i] = new Utilisateur();
Cela, vous pouvez en savoir plus en La Confusion de faire référence à des variables et des objets dans des tableaux (array d'array d'objets)
D'abord, Vous devez lire la taille de la matrice utilisateur de ligne de commande pour définir la taille de votre tableau en dehors de la boucle. puis à l'intérieur de la boucle que vous remplissez le tableau avec les éléments appropriés.
toutefois, si vous souhaitez un tableau dynamique, utilisez un Liste la mise en œuvre de la classe comme ArrayList qui ne vous obligent pas à fournir de taille lors de la création du tableau.
Votre comparaison de consulter le menu valeur est erronée.
Il ne devrait pas être
menu = 1
il devrait plutôt êtremenu == 1
.Je ne sais pas comment allez-vous stocker les utilisateurs, mais ce que je suggère, c'est de faire un
ArrayList
qui va stocker les objets utilisateur et à chaque fois que la création d'une nouvelleUser
objet de l'ajouter à la liste.Et bien que l'inscription de l'utilisateur , il suffit de parcourir le tableau de la liste créée.
Je pense que c'est ce dont vous avez besoin:
Il faut
User user[] = new User[size];
//ici, vous la création de tableau deUser
des objets de taillesize
Et puis, pour chacun des
user
:user[i] = new User();
//et ici, vous êtes à l'initialisation de chaque objet utilisateur