0. Start the NetBeans IDE if you have not done
so.
1. Create a NetBeans project
package innerclassexample; public class Main { public static void main(String[] args) { // Create an object instance of a class that contains // an inner class - we will call it outer class. OuterClass oc = new OuterClass(); // Create an object instance of an inner class. OuterClass.InnerClass ic = oc.new InnerClass(); // Display data from both outer class and inner class. System.out.println("Access data from outer class = " + oc.data); System.out.println("Access data2 from inner class = " + ic.data2); // Invoke a method from an inner class ic.method(); } } |
package
innerclassdemo; /** * * @author sang */ public class OuterClass { /** Creates a new instance of OuterClass */ public OuterClass() { } // Define a variable in the outer class int data = 5; // Define an inner class class InnerClass { int data2 = 10; void method() { System.out.println("data from OuterClass = " + data); System.out.println("data2 from InnerClass = " + data2); } } } |
Access data from outer class = 5 Access data2 from inner class = 10 data from OuterClass = 5 data2 from InnerClass = 10 |
In this exercise, you have build and run Java
applications that use an inner class.
Return
to the top
package
innerclassexample; public class InnerClassDemo { public static void main(String[] args) { // Create an object instance of a class that contains // an inner class - we will call it outer class. OuterClass oc = new OuterClass(); // Create an object instance of an inner class. OuterClass.InnerClass ic = oc.new InnerClass(); // Create an object instance of an inner class. OuterClass.InnerClass.InnerInnerClass iic = ic.new InnerInnerClass(); // Display data from both outer class and inner class. System.out.println("Access data from outer class = " + oc.data); System.out.println("Access data2 from inner class = " + ic.data2); System.out.println("Access data3 from innerinner class = " + iic.data3); // Invoke a method from an inner class ic.method(); iic.method2(); } } |
Access data from outer class = 5 Access data2 from inner class = 10 Access data3 from innerinner class = 15 data from OuterClass = 5 data2 from InnerClass = 10 data from OuterClass = 5 data2 from InnerClass = 10 data3 from InnerInnerClass = 15 |