class Tea
{
private String s="woairen";
class Inner
{   void get()
{
System.out.println(s);
System.out.println(this + " " + Tea.this);
}

};  //问提在这里  为什么这里的分号可有可无呢?

}

解决方案 »

  1.   

    java语句为什么时候要加问号?因为它是一个语句,比如 
    int i; 
    Test t=new Test(); 
    t.te(); 
    需要加分号的时候说明它也形成了一个语句,一般就是匿名内部类了 
    比如说 
    abstract class A 

    abstract public void fun1(); 

    class Outer 

    public static void main(String [] args) 

    class Inner extends A 

    public void fun1() 

    System.out.println("implement for fun1"); 


    new Outer().callInner(new Inner()); 

    public void callInner(A a) 

    a.fun1(); 


    这里面就新建了一个实现了A接口的类,然后直接实例化并返回它,总之 
    我们定义一个类的代码的时候是不需要分号的.但是实例化一个类的时候是要的,因为这算一个语句了
      

  2.   

    我在MyEclipse上试了一下如果不是匿名内部类。加不加分号都没有关系,
    但是如果是匿名内部类的话,那么不加分号MyEclipse编译就不会通过的。