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

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Pin It on Pinterest

Share This

Share this post with your friends!

Share This

Share this post with your friends!