IS IT POSSIBLE TO DECLARE A CLASS AS STATIC IN JAVA?

Mikki Halpin

Total Post:23

Points:161
Posted by  Mikki Halpin
Java 
 682  View(s)
Ratings:
Rate this:
Why are you not able to declare a class as static in Java?
  1. Mayank Tripathi

    Post:397

    Points:3117
    Re: Is it possible to declare a class as static in Java?

    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)
        eOAuth.GetSomeStuff();
    ...

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!