2009-12-31 6 views
2

Hé les gars, j'ai eu un problème avec une question.Déclarer des variables de tableau

Question: Ecrire une déclaration pour un peuple variables qui pourraient être utilisés pour faire référence à un tableau d'objets de type Personne

Ma réponse:

public people[]; 
people = new Person [100]; 

Mais je reçois une erreur disant qu'il est faux. Qu'est-ce que je fais mal?

PS. J'ai aussi essayé public people[] = new Person [100]

L'erreur que je reçois est la suivante:

Main.java:5: <identifier> expected 
public people[]; 
      ^

Main.java:6: <identifier> expected 
people = new Person [100]; 
    ^

2 errors 

La sortie aurait dû être: si elle n'a pas été corriger sera pas compilé

C'est ce qui a été effectivement produit: Exception dans le thread "principal" java.lang.NoClassDefFoundError: Main`

Répondre

10
public Person[] people = new Person[100]; 
  • public est un access modifier;
  • Person[] est un tableau de type Person;
  • people est le nom de la variable qui contient une référence au tableau susmentionné;
  • new Person[100] alloue un nouveau tableau de type Person qui est capable de stocker jusqu'à 100 Person s.
1

Je pense que la phrase devrait être:

Person people[]; 
people = new Person[100]; 

.OR. Puisque votre variable de personnes est de type Personne, vous devez le déclarer de cette façon.

2

Toutes les variables java doivent avoir leur type spécifié.

Person[] people = new Person [100]; 

Vous pouvez spécifier un qualificateur pour la variable. Tels que:

final Person[] people = new Person [100]; //applies to fields and variables 
private Person[] people = new Person [100]; //applies to fields only 
private static volatile Person[] people = new Person [100]; //applies to fields only 
1

La déclaration réelle doit déclarer le nom de la variable, et son type .

Person[] people; 

(La variable est nommé « peuple », et son type est « tableau d'objets personne ». Assurez-vous que vous avez défini Person quelque part!)

La création de tableau (non déclaration) crée en fait un tableau d'une taille donnée:

people = new Person[100]; 

Je pense que vous avez peut-être été jeté par la nature répétitive de l'expression combinée:

Person[] people = new Person[100]; 

... où vous spécifiez deux fois le type.

1
Person [] people; 
people = new Person[100]; 

Votre code est presque correct (vous avez juste oublié de fournir le type de tableau, comme illustré ci-dessus), mais assurez-vous également défini une classe appelée personne. Vous pouvez ajouter une nouvelle classe à votre projet et la laisser vide (ce qui est suffisant pour compiler votre code de test).

public class Person { 

} 
Questions connexes