Hi Satish,
DEBUG is being used here as a very crude form of conditional compilation. I'd bet whoever did this has a background in the C language. If you set DEBUG = false in one place you effectively won't enter the code enclosed in the any of the if (DEBUG) statements. If you were to set DEBUG = true, then you would. It's supposed to be an easy way to turn on and off debugging output. Of course, with the current version of
Java this could be more effectively done with logging or assertions.
The "this" thing is mostly a matter of style. Some Java style guides recommend that all references to member instance variables include the this reference. Of course, it makes it clear which variables are instance variables. It's absolutely needed in the idiom that you quoted before:
because the variable name of the innermost enclosing scope takes precedence over the use of the same name in any outer enclosing scope. It's the only way to resolve the data hiding correctly in this case.
Any other use of "this" with an instance variable is a matter of style. That is, emphasizing that the variable is an instance variable. Actually any time you reference an instance variable you are implicitly referencing the current instance of the class containing the instance variable, in other words, the "this" instance. So, whether you make the reference explicit is largely a matter of style (except if you need to resolve a data hiding situation).