Originariamente inviato da zipangulu
codice:
class Pippo{
private double [] array=new double [20];
array[0]=0.5;
array[1]=1.3;
.....
.....
.....
......
}
io ho provato a fare una cosa del gebere ma mi dà errore
Queste assegnazioni, almeno per come le hai postate, sono nella classe ma fuori dai metodi .... e ovviamente è una sintassi sbagliata/inappropriata. Se le facessi es. in un costruttore o in un instance init-block ... allora ok, è un altro conto.
Qui ora parlo in generale (non conta se locale, di istanza, ecc...), nella dichiarazione di una variabile di tipo array puoi fornire un "inizializzatore":
double[] arr = { 1.0, 2.0 };
Se poi successivamente, in un altro momento, vuoi assegnare un altro array "literal", non puoi più usare un semplice inizializzatore.
codice:
....
....
arr = { 3.0, 4.0 }; // NO!!!!
Ma devi usare un "anonymous" array.
codice:
....
....
arr = new double[] { 3.0, 4.0 }; // OK
Ovviamente un anonymous array puoi anche usarlo nella dichiarazione, anche se sarebbe superfluo.
codice:
double[] arr = new double[] { 3.0, 4.0 }; // OK, anche se superfluo il new double[]
Un anonymous array invece è indispensabile quando si vuole passare un array literal "al volo" ad un metodo (o costruttore, ovviamente):
codice:
xyz.metodo(new double[] { 1.0, 2.0 }); // Qui un anonymous array serve