File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
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 Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "can a class be static?" Watch "can a class be static?" New topic

can a class be static?

shaila sangam

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.
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:
public class A {
static int b;
static String = "justOne";
private A() {}
public static void amethod() {}
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:
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() {}
In this example, constructors are private. A public static method is provided to return the same instance at all times.
I agree. Here's the link:
subject: can a class be static?
jQuery in Action, 3rd edition