That is the correct answer (hi hi followed by an exception.) The issue here is that m1, as an instance variable of class Mixer, is initialized to null, and only when the object is constructed with the constructor that takes a Mixer argument it is initialized to point to an object.
There is a mistake in your listing. It should be: Mixer m5=m2.m1; m5.go();
Since m2 was constructed via the default constructor, m2.m1 is null, and so is m5 after the assignment. Therefore, the m5.go() invocation causes a NPE.
Does that help?
All code in my posts, unless a source is explicitly mentioned, is my own.