In his case, there are two instance variables named "a". The one in
Test is initialized to 100 by the Test constructor, which executes first. The one in drived is initialized to 200 by the drived constructor, which executes second.
However, the second "a" is changed to 100 by drived's set() method, which is called from main() in Test with Test's "a" as an argument.
Remember that the hidden first line of the drived constructor is "super();", which calls the Test constructor.