Static Nested Class In Java

Static Nested classes are inner classes which are declared inside another class and also declared with static keyword. The main difference between inner class and static nested classes is that inner classes are non-static and static nested classes are static. Also known as static classes.

  • Static nested classes can be accessed using the enclosing class name.
  • It can access static data members of outer class including private.
  • static nested class cannot access non-static (instance) data member on method.
  • static nested class can access static data member of another nested class within the outer class.
  • By making a nested classes can be static, you can use the nested class without having an instance of the outer class.

Lets look at the simple example.

StaticClassExample.java

package javabeat.net.core;

/**
 * Static Nested Class Example
 *
 * @author Krishna
 *
 */
public class StaticClassExample {
	static int i = 10;
	public static void main(String[] args) {
		//Access static nested class
		new StaticClassExample.NestedClass().method();
	}

	public static class NestedClass{
		public void method(){
			System.out.println("Method in Static / Nested Class");
			//Outer class static
			System.out.println(StaticClassExample.i);

			//Another nested class static
			System.out.println(StaticClassExample.NestedClass1.j);
		}
	}

	public static class NestedClass1{
		static int j = 20;
	}

}

Output…

Method in Static / Nested Class
10
20

Comments

comments

About Krishna Srinivasan

He is Founder and Chief Editor of JavaBeat. He has more than 8+ years of experience on developing Web applications. He writes about Spring, DOJO, JSF, Hibernate and many other emerging technologies in this blog.

Speak Your Mind

*