Snippet 1
// Java program to demonstrate how to
// implement static and non-static
// classes in a Java program.
class OuterClass {
private static String msg = "GeeksForGeeks";
// Static nested class
public static class NestedStaticClass {
// Only static members of Outer class
// is directly accessible in nested
// static class
public void printMessage()
{
// Try making 'message' a non-static
// variable, there will be compiler error
System.out.println(
"Message from nested static class: "
+ msg);
}
}
// Non-static nested class -
// also called Inner class
public class InnerClass {
// Both static and non-static members
// of Outer class are accessible in
// this Inner class
public void display()
{
System.out.println(
"Message from non-static nested class: "
+ msg);
}
}
}
class Main {
// How to create instance of static
// and non static nested class?
public static void main(String args[])
{
// Create instance of nested Static class
OuterClass.NestedStaticClass printer
= new OuterClass.NestedStaticClass();
// Call non static method of nested
// static class
printer.printMessage();
// In order to create instance of
// Inner class we need an Outer class
// instance. Let us create Outer class
// instance for creating
// non-static nested class
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner
= outer.new InnerClass();
// Calling non-static method of Inner class
inner.display();
// We can also combine above steps in one
// step to create instance of Inner class
OuterClass.InnerClass innerObject
= new OuterClass().new InnerClass();
// Similarly we can now call Inner class method
innerObject.display();
}
}
Copyright © Code Fetcher 2020