ShowInnerClass.java

Command window output

C:\ece538\JavaFX\JavaPP\ch15\ex1>java ShowInnerClass
outer data 0
inner data 1

Two class files are produced, one for the outer class and one for the inner class:

02/11/2018  03:03 PM               741 ShowInnerClass$InnerClass.class
02/11/2018  03:03 PM             1,081 ShowInnerClass.class


ShowInnerClass.java

// ShowInnerClass.java: Demonstrate using inner classes
public class ShowInnerClass {
  private int data;

  public String toString() {
	return "outer data " + data;
  }

  /** A method in the outer class */
  public void m() {
    // Do something
    System.out.println(this);
    InnerClass instance = new InnerClass();
    instance.mi();
    System.out.println(instance);
  }

  // An inner class
  class InnerClass {
    /** A method in the inner class */
    public void mi() {
      // Directly reference data and method defined in its outer class
      data++;
    }
    public String toString() {
	return "inner data " + data;
    }

  }

  public static void main(String [] args) {
	ShowInnerClass v = new ShowInnerClass();
	v.m();
  }
}


Maintained by John Loomis, updated Sun Feb 11 15:04:40 2018