I want to define another iterative structure Points similar to Julia Array type which can store Point type objects p1, p2, p3. I am thinking, how to construct such an array so that Points[1], Points[2], Points[3] give me p1, p2, p3.
Well, what do you want to do with your hypothetical new Points type? Do you want to store a fixed number of points? An arbitrary number? What would a Points type to differently to a regular Vector?
If you just want to iterate over something and dispatch differently to Vector, you can define a simple wrapper type and implement the iterator interface for that type. If you want indexing, implement the indexing interface for that type (you’ll probably have to forward a bunch of methods to a wrapped Vector or Tuple).
FieldVector from StaticArrays is advanced usage - I’d encourage you to first familiarize yourself with how indexing and iteration works in julia and finding out how you want to use your new type before jumping into performance optimizations like StaticArrays.
For this particular use it actually helps a lot basic usage, because without it the user has to define it’s own basic arithmetic operators for summing, averaging, etc, the custom Points