This file is to show what happens if you try to access an inner class created in another class : Inner Class « Class « Java






This file is to show what happens if you try to access an inner class created in another class

  
/*
 * Copyright (c) Ian F. Darwin, http://www.darwinsys.com/, 1996-2002.
 * All rights reserved. Software written by Ian F. Darwin and others.
 * $Id: LICENSE,v 1.8 2004/02/09 03:33:38 ian Exp $
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 * 
 * Java, the Duke mascot, and all variants of Sun's Java "steaming coffee
 * cup" logo are trademarks of Sun Microsystems. Sun's, and James Gosling's,
 * pioneering role in inventing and promulgating (and standardizing) the Java 
 * language and environment is gratefully acknowledged.
 * 
 * The pioneering role of Dennis Ritchie and Bjarne Stroustrup, of AT&T, for
 * inventing predecessor languages C and C++ is also gratefully acknowledged.
 */

import java.awt.event.*;

// This file is to show what happens if you try to access an inner class
// created in another class. Here we try to steal ButtonDemo2.java's
// inner class named MyActionListener. You will find that you can't,
// since it has no visible constructor!

class ButtonDemo2 {
  // Create an inner class which may be named ButtonDemo2$1
  Object o = new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
      }
  };
}

public class TryStealingInnerClass {
  public static void main(String[] a) {
    new TryStealingInnerClass().doIt();
  }
  public void doIt() {
    Object o = new ButtonDemo2$1$();  // EXPECT COMPILE ERROR
    System.out.println(o.toString());
  }
}


           
         
    
  








Related examples in the same category

1.Nested classes can access all members of all levels of the classes they are nested within
2.Creating inner classesCreating inner classes
3.Creating instances of inner classes
4.Returning a reference to an inner classReturning a reference to an inner class
5.Nesting a class within a scope
6.Putting test code in a nested class
7.Inheriting an inner class
8.Creating a constructor for an anonymous inner classCreating a constructor for an anonymous inner class
9.Demonstrate an Inner Child classDemonstrate an Inner Child class
10.Demonstrate simple inner classDemonstrate simple inner class
11.Just to show that there is no such thing as inner methods in Java
12.A named inner class is used to
13.An inner class cannot be overriden like a methodAn inner class cannot be overriden like a method
14.Proper inheritance of an inner classProper inheritance of an inner class
15.Using inner classes for callbacksUsing inner classes for callbacks
16.Holds a sequence of Objects
17.With concrete or abstract classes, inner classes are the only way to produce the effect
18.Nested Class Static
19.Compiler will generate a synthetic constructor since SyntheticConstructor() is private
20.Accessing its enclosing instance from an inner class
21.This program demonstrates the use of inner classes
22.This program demonstrates the use of local inner classes
23.This program demonstrates the use of static inner classes