Shared PVector values in Classes

What does ‘final’ do? I’ve done ‘vec = v;’ rather than using ‘vec.set(v)’ because for some reason ‘vec.set(v)’ causes an error for some reason, but that shouldn’t make a difference right? But my issue is that when something like this is run:

PVector position = new PVector(200, 200); Polygon square = new Polygon(position); Polygon pentagon = new Polygon(position); pentagon.vec.x = 400; println(square.vec.x);
This prints 400 because line 4 updates the x position for all Polygons. When I want it to print 200.