kevin Abel wrote:Is it possible that I am focusing too much on this? To me it's like thinking about the concept of infinity. There is no rule about the class making itself into an object, but it seems strange.
Most programming languages (believe it or not) are mostly designed using the principle that their features are as simple as possible. Many of the Java features may look horribly complicated, but they still try to minimize complexity given what they are trying to do. So using "new" to create an object of some class is a pretty simple idea. When you see code creating an object of class X inside class X, then "Hmm, that seems strange" is a reasonable reaction. But it's best to assume that there isn't an extra bit of complexity there and carry on with programming. It may be that there is actually an extra bit of complexity but if that's the case then you'll find out about it later and you can deal with it then.
I think there's two personality types, one will look at a situation and think "What about this possibility" and "What if this thing happens" and so on. The other will think "Well, if those things happen then we'll deal with them at that time". (This is not situations like diving off a 20-meter tower, it's situations where unforeseen consequences are not likely to be bad.) I'm in the second category.