Unless I’m missing something, I don’t see a line where ‘setReset’ is called for Obj2.
Because Obj1 and Obj2 reference different data, Obj2 retains the values assigned when it’s instantiated (self.reset = false), consistent with your output.