Since this rather a broad question, I would try to answer it in a general context and then with the circle example you have mentioned
If you are creating multiple instances of your class and you want the instances to communicate with each other, looping them as a collection would be ideal as pointed out by Peter Torok. Read your language documentation to implement this as this may vary across languages. This is OK in case all the instances would be called by a single program or would be executed in totality. I don't recommend storing the data inside the classes as static variable as this would make the class somewhat rigid to modify in future.
But in case you want to create multiple instances of your class and multiple collections of your class instances, then it would turn tricky as you need to exchange information among classes and if the classes are stateful, then it would take some real good work
In this case, you can wrap your class with an another class that would draw a specified number of circles and a click action (assuming general GUI components) that would redraw the circles.
constructor creates the required number of circles by calling the circle class with draw method
click event that calls the recolor method on each of the circles
class circle ():
CircleWrapper(10)creates 10 circles. Clicking the GUI invokes the recolor method. Wrapper methods aren't given in detail in the above example. Though this involves an extra call, it is easier to extend the model and to add run-time changes and validations.