This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes can a class be static? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "can a class be static?" Watch "can a class be static?" New topic
Author

can a class be static?

shaila sangam
Greenhorn

Joined: Sep 25, 2000
Posts: 4
Hi all,
preparing for scjp.I have one doubt.can a class be static?can it instanciated?what about its access?& above all when a class should be declared static?please help.
thanks in advance.
shaila
bill bozeman
Ranch Hand

Joined: Jun 30, 2000
Posts: 1070
Inner classes can be static, not outer classes. A static means that it belongs to the class and not to any instance of a class, so it wouldn't make sense to have an outer class static. That may help you remember this.
Inner classes can be static, but they are treated as top-level inner classes because they don't have all the free access to variables like non-static inner classes do.
Sam Wong
Ranch Hand

Joined: Dec 07, 2000
Posts: 133
Classes can't be defined as static. However, you can achieve something similar in concept. The closest thiing that fits your description is a class of the following:
<pre>
public class A {
static int b;
static String = "justOne";
private A() {}
public static void amethod() {}
}
</pre>
Private constructor so no one can create an instance. All members are static. See java.lang.Math for example.
Another approach that's sort of similar is the singleton pattern. The idea is to only allow one single instance to be ever created. Static members are still allowed. An example of that is:
<pre>
public class A {
private int a;
public static int b;
private static A me;
private A() {}
public static A getInstance() {
if (me == null) {
me = new A();
}
return me;
}
public void aMethod() {}
}
</pre>
In this example, constructors are private. A public static method is provided to return the same instance at all times.
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: can a class be static?
 
Similar Threads
what can be static???
Static Class
class initialized
If static inner classes are top level classes then why does this compiles
Static class??