[quote=robgeek][quote=rof20004]Nao precisa instancialas, ate porque voce ja faz isso nessa linha:
String[] vetor = new String[10];
Apos essa linha voce pode adicionar valores normalmente ao vetor.[/quote]
Mas cara, por exemplo, eu tenho uma classe igual a que está abaixo, só que no exemplo abaixo não coloquei os outos métodos por que não há necessidade.
E a mensagem de erro é:
[code]public class Numero
{
int val;
float acum;
public Numero(int val, float acum)
{
this.val = val;
this.acum = acum;
}
}
// Se eu tentar, no método “main” ou em outro método fazer como no trecho abaixo, dá erro.
Numero vetor[] = new Numero[2];
vetor[0].val = 1;
vetor[0].val = 1.0;
// Para funcionar eu tenho que fazer como está abaixo:
Numero vetor[] = new Numero[2];
vetor[0] = new Numero();// Tenho que instanciar um objeto Numero na posição 0 do vetor.
vetor[0].val = 1;
vetor[0].val = 1.0;[/code][/quote]
robgeek ao tentar fazer isso
Numero vetor[] = new Numero[2];
vetor[0].val = 1;
Na primeira linha você não está instanciando os objetos do vetor e sim declarando seu tamanho, então o código geraria uma exceção de NullPointException ao passar pela segunda linha, simplismente porque você está tentando acessar um objeto que ainda não foi instanciado.
Então o certo seria declarar o objeto antes de acessar um método ou variável que ele possui, exemplo:
Numero vetor[] = new Numero[2]; //declara o tamanho do vetor.
vetor[0] = new Numero(); //declara o objeto na posição 0 do vetor
vetor[0].val = 1; //agora você pode acessa-lo já que a referencia está apontando para um objeto criado acima
O mesmo acontece com a String que em Java não é um tipo primitivo.