Tuesday, March 10, 2009

Why can't I say just abs() or sin() instead of Math.abs() and

Question :Why can't I say just abs() or sin() instead of Math.abs() andMath.sin()? (CoreJava)
Answer :The import statement does not bring methods into your local name
space. It lets you abbreviate class names, but not get rid of them
altogether. That's just the way it works, you'll get used to it. It's really a
lot safer this way.
However, there is actually a little trick you can use
in some cases that gets you what you want. If your top-level class doesn't
need to inherit from anything else, make it inherit from java.lang.Math.
That *does* bring all the methods into your local name space. But you
can't use this trick in an applet, because you have to inherit from
java.awt.Applet. And actually, you can't use it on java.lang.Math at all,
because Math is a "final" class which means it can't be extended.

No comments: