// Vectoren3.java
// omzeilen gedeelde objectstructuren

class Vector{
   private double[] coordinaten;

   Vector(){
      coordinaten=new double[3];
      for(int i=0;i<3;i++)
         coordinaten[i]=0.0;
   }

   Vector (Vector v){
      /* eerste methode:
      coordinaten=new double[3];
      for (int i=0;i<3;i++)
         coordinaten[i]=v.coordinaten[i];
      */
      // tweede methode en beter:
      coordinaten=(double[])v.coordinaten.clone();
   }

   Vector(double x, double y, double z){
      coordinaten=new double[]{x,y,z};
      // tabelinitialisatie op basis van een 
      //    geïnitialiseerde anomieme tabel
   }

   void druk(String tekst){
      System.out.println(tekst+": (" +
                         coordinaten[0] + ", " +
                         coordinaten[1] + ", " +
                         coordinaten[2] + ")");
   }

   void wijzig (double x, double y, double z){
      coordinaten[0]=x;
      coordinaten[1]=y;
      coordinaten[2]=z;
   }
}
    
class Vectoren3{
   public static void main (String[] args){
      Vector nul, ex, ey, ez;
      nul=new Vector();
      ex=new Vector(nul);
      ey=new Vector(nul);
      ez=new Vector(nul);
      ex.wijzig(1,0,0);
      ey.wijzig(0,1,0);
      ez.wijzig(0,0,1);
      nul.druk("nul"); ex.druk("ex"); ey.druk("ey");ez.druk("ez");

      // of beter:
      ex= new Vector(1,0,0);
      ey= new Vector(0,1,0);
      ez= new Vector(0,0,1);
      nul.druk("nul"); ex.druk("ex"); ey.druk("ey");ez.druk("ez");
   }
}
