Hi Noel,
I think u 've misquoted your question, coz what i see in your code is nothing is tricky and class in t2 is not getting envolved in any way.
Only thing I see tricky in this case is that all of three classes are declared in a single file, since all three classes are declared public, and a file can't can 've more than 1 public class or interface.
if that's not the case than it should print==>
2
2
'coz u r creating object of t1 in the main of t.
as there is no constructor in t1 , i is getting intialized to 2.
so call to tins.i prints 2
and call to tins.amethod prints 2.
I hope this helps u.
bye
ashish