est ici l'exemple de code:Au sein d'une gamme d'objets peut-on créer une nouvelle instance d'un objet à un index?
class TestAO
{
int[] x;
public TestAO()
{
this.x = new int[5] ;
for (int i = 0; i<x.length; i++)
x[i] = i;
}
public static void main (String[]arg)
{
TestAO a = new TestAO();
System.out.println (a) ;
TestAO c = new TestAO() ;
c.x[3] = 35 ;
TestAO[] Z = new TestAO[3] ;
Z[0] = a ;
Z[1] = (TestAO b = new TestAO()) ;
Z[2] = c ;
}
}
Quand je tente de compiler ce que je reçois un message d'erreur à la ligne Z[1]
qui se lit comme suit:
TestAO.java:22: ')' expected
Z[1] = (TestAO b = new TestAO()) ;
^
Ce que je suis en train de faire ici est créer une instance de l'objet TestAO que je veux être dans cet index dans l'affectation de la valeur à cet index au lieu de créer l'instance de l'objet en dehors du tableau comme je l'ai fait avec a
.
Est-ce légal et je fais juste une erreur de syntaxe que je ne peux pas voir (causant ainsi le message d'erreur) ou ce que je suis en train de faire ne peut-il pas être fait?
EDIT:
en ce qui concerne la réponse de Mark Voici ma question de suivi:
est-il un moyen plus court pour attribuer des valeurs aux variables d'instance d'un objet dans le tableau de objacts que ceci: (sans écrire des constructeurs spéciaux)
Z[1] = new TestAO() ;
Z[1].x[4] = 80085 ;
si je fais bien alors il is't toute référence à l'instance de TestAO bien; il n'y a pas de «a» ou «b» ou «c» ou autre chose. Comment est-ce que je me réfère à lui d'une manière qui n'inclut pas une référence au tableau Z? ou n'ai-je pas besoin de m'inquiéter à ce sujet? – David
Déclarez simplement une référence et faites-la pointer sur Z [1], ou référez-vous simplement à cette variable à partir de là en tant que Z [1] –
@David: Êtes-vous inquiet que l'objet puisse être collecté si vous n'avez pas référence explicite à celui-ci? Ne t'inquiète pas: ça ne sera pas. –