Como criar e inicializar um array de objetos?

Pessoal,
criei uma classe chamada Ponto3D


public class Ponto3D {

    double x, y, z;

    public Ponto3D() {
        this.x = 0.0;
        this.y = 0.0;
        this.z = 0.0;
    }

    public Ponto3D(double x, double y, double z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }

}

quando eu tendo na classe principal criar um array de objeto como abaixo,

public class Laboratorio {

    public static void main(String args[]) {



        Ponto3D ponto[] = new Ponto3D[5];
        ponto[1].x = 2.0;

        System.out.println(ponto[1].x);
    }

}

o programa compila, mas quando vou execular ocorre o seguinte erro:

Exception in thread “main” java.lang.NullPointerException
at Laboratorio.main(Laboratorio.java:8)

Como vocês podem ver a classe Ponto3D tem 2 métodos construtores,
o que estou fazendo errado e como eu escolho o método construtor na criação e inicialização da array?

Obrigado

Wanderson

O erro é que tu não inicializaste os objectos do array e portanto são por predefinição null. Aliás a excepção NullPointerException refere-se mesmo a isso neste caso, objecto não inicializado.

O que tu fizeste foi a declaração de um vector de pontos:

        Ponto3D ponto[] = new Ponto3D[5];  

Agora tens de inicializar os objectos:

 ponto[i] = new Ponto(); //Aqui é que podes escolher o construtor... 

E depois é que podes modificar os valores iniciais das variáveis de objecto.

Espero ter sido útil.

Cumprimentos.

voce pode também fazer com arrayList é bem facil:

ArrayList<Ponto3D> laboratorio = new ArrayList<Ponto3D>();

//Depois cria seu objetos Ponto3D e 

 Ponto3D p1 = new Ponto3D(2,3,4); 
 Ponto3D p2 = new Ponto3D(5,6,7);

//Por ultimo adiciona no Array

laboratório.add(p1);
laboratório.add(p2);

Abraço