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(); ...
Join MindStick Community
You need to log in or register to vote on answers or questions.
We use cookies to ensure you have the best browsing experience on our website. By using our site, you
acknowledge that you have read and understood our
Cookie Policy &
Privacy Policy.
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();
}
public class eOAuth {private eOAuth(){}
public final static int ECodeOauthInvalidGrant = 0x1;
public final static int ECodeOauthUnknown = 0x10;
public static GetSomeStuff(){}
}