当然可以,顺手给你个简单的例子:
public class Egg2 {
  protected class Yolk {
    public Yolk() {
      System.out.println("Egg2.Yolk()");
    }
    public void f() {
      System.out.println("Egg2.Yolk.f()");
    }
  }
  private Yolk y = new Yolk();
  public Egg2() {
    System.out.println("New Egg2()");
  }
 public static void main(String[] args) {
    Egg2 e2 = new Egg2();
    //e2.g();
  }
} //

解决方案 »

  1.   

    得了,给你thingking in java中关于内部类的简单介绍:
    内部类
    在Java 1.1中,可将一个类定义置入另一个类定义中。这就叫作“内部类”。内部类对我们非常有用,因为利用它可对那些逻辑上相互联系的类进行分组,并可控制一个类在另一个类里的“可见性”。然而,我们必须认识到内部类与以前讲述的“合成”方法存在着根本的区别。
    通常,对内部类的需要并不是特别明显的,至少不会立即感觉到自己需要使用内部类。在本章的末尾,介绍完内部类的所有语法之后,大家会发现一个特别的例子。通过它应该可以清晰地认识到内部类的好处。
    创建内部类的过程是平淡无奇的:将类定义置入一个用于封装它的类内部(若执行这个程序遇到麻烦,请参见第3章的3.1.2小节“赋值”)://: Parcel1.java
    // Creating inner classes
    package c07.parcel1;public class Parcel1 {
      class Contents {
        private int i = 11;
        public int value() { return i; }
      }
      class Destination {
        private String label;
        Destination(String whereTo) {
          label = whereTo;
        }
        String readLabel() { return label; }
      }
      // Using inner classes looks just like
      // using any other class, within Parcel1:
      public void ship(String dest) {
        Contents c = new Contents();
        Destination d = new Destination(dest);
      }  
      public static void main(String[] args) {
        Parcel1 p = new Parcel1();
        p.ship("Tanzania");
      }
    } ///:~若在ship()内部使用,内部类的使用看起来和其他任何类都没什么分别。在这里,唯一明显的区别就是它的名字嵌套在Parcel1里面。但大家不久就会知道,这其实并非唯一的区别。
    更典型的一种情况是,一个外部类拥有一个特殊的方法,它会返回指向一个内部类的句柄。就象下面这样://: Parcel2.java
    // Returning a handle to an inner class
    package c07.parcel2;public class Parcel2 {
      class Contents {
        private int i = 11;
        public int value() { return i; }
      }
      class Destination {
        private String label;
        Destination(String whereTo) {
          label = whereTo;
        }
        String readLabel() { return label; }
      }
      public Destination to(String s) {
        return new Destination(s);
      }
      public Contents cont() { 
        return new Contents(); 
      }
      public void ship(String dest) {
        Contents c = cont();
        Destination d = to(dest);
      }  
      public static void main(String[] args) {
        Parcel2 p = new Parcel2();
        p.ship("Tanzania");
        Parcel2 q = new Parcel2();
        // Defining handles to inner classes:
        Parcel2.Contents c = q.cont();
        Parcel2.Destination d = q.to("Borneo");
      }
    } ///:~若想在除外部类非static方法内部之外的任何地方生成内部类的一个对象,必须将那个对象的类型设为“外部类名.内部类名”,就象main()中展示的那样。
      

  2.   

    绝对可以,如alphazhao所示。
    另有一种静态内部类:
    public class Calculator
    {
      public static class Long
        extends Calculator
      {
        ...
      }  public static class Double
        extends Calculator
      {
        ...
      }
    }
    这样,可以存在两个不同的版本,功能相同,内核不同。
      

  3.   

    给你一个匿名内部类的可以运行的例子:interface Contents {
      int value();
    } public class Parcel6 {
      public Contents cont() {
        return new Contents() {
          private int i = 11;
          public int value() { return i; }
        }; 
      }
      public static void main(String[] args) {
        Parcel6 p = new Parcel6();
        Contents c = p.cont();
      }
    }
      

  4.   

    去考SCJP吧,里面考内部类题目多的很
      

  5.   

    a,,,啊,,开赛了中国 VS 巴西。我猜想是4:0,zou走,看球去了~