Class1 c1 = new Class1()
{
int i = 0;
}

解决方案 »

  1.   

    这是匿名类的用法。定义了一个从 Class1 扩展出来的匿名类,并创建了一个实例。
      

  2.   

    你可以理解为extends或implements.
      

  3.   

    匿名类因为没有自己的名字,所以只能在定义的同时 new 一个 instance 出来用。除此之外,它跟一个普通的类没有任何区别,普通的 class 能做的事情,匿名类都能做。
      

  4.   

    但是我的匿名类如果内部定义一个函数,外部怎么无法识别呢,只能内部自己调用啊
      Test_Hello p1=new Test_Hello("aaa",20)
      {
     
      public boolean equals(Test_Hello t){
      System.out.println("object ok!!ok!");
      aaa(t);
      return true;
      }
     
      public boolean aaa(Test_Hello t){
      System.out.println("object ok!!ok!");
      return true;
      }
     
      };
    无法p1.aaa(...)
      

  5.   

    你这个“内部定义的函数”是长在“子类”身上的,你通过一个“父类”类型的引用去调用这个函数,当然是不行的啦;问题是你又不能通过“子类”类型的引用去调用它,因为“子类”是匿名的,haha !所以,匿名类一般只用于临时实现一个接口对象。如果你一定要访问它自定义的方法,可以用反射,但又何苦呢?别“匿名”不就好了?