Home > DeveloperSection > Forums > Is it possible to declare a class as static in Java?
Mikki Halpin
Mikki Halpin

Total Post:23

Posted on    July-21-2015 12:28 AM

 Java Java 

 1 Reply(s)
 362  View(s)
Rate this:
Why are you not able to declare a class as static in Java?

Mayank Tripathi
Mayank Tripathi

Total Post:397

Posted on    July-21-2015 8:47 AM

Only nested classes can be static. By doing so you can use the nested class without having an instance of the outer class.
class OuterClass{
    public static class StaticNestedClass{
    public class InnerClass{
    public InnerClass getAnInnerClass(){
        return new InnerClass();
    //This method doesn't work
    public static InnerClass getAnInnerClassStatically(){
        return new InnerClass();

class OtherClass{
    //Use of a static nested class:
    private OuterClass.StaticNestedClass staticNestedClass = new OuterClass.StaticNestedClass();
    //Doesn't work
    private OuterClass.InnerClass innerClass = new OuterClass.InnerClass();
    //Use of an inner class:
    private OuterClass outerclass= new OuterClass();
    private OuterClass.InnerClass innerClass2 = outerclass.getAnInnerClass();
    private OuterClass.InnerClass innerClass3 = outerclass.new InnerClass();

Class with private constructor is static.
Declare your class like this:

public class eOAuth {
    private eOAuth(){}
    public final static int    ECodeOauthInvalidGrant = 0x1;
    public final static int    ECodeOauthUnknown       = 0x10;
    public static GetSomeStuff(){}
and you can used without initialization:

if (value == eOAuth.ECodeOauthInvalidGrant)

Don't want to miss updates? Please click the below button!

Follow MindStick