public class Test5
{
public static void main(String[] args)
{

}
public static void name()
{
final int i = 0;

class inner
{
public void print()
{
System.out.println(i);
}
}
}

}
我想在main函数中调用 inner中的print方法。可以调用吗?如果可以,该怎么调用?

解决方案 »

  1.   

    楼主 内部类的位置放得貌似有问题啊:
    public class Test5
    {
        public static void main(String[] args)
        {
            Test5 T = new Test5();
            inner i = T.new inner() ;
            i.print();
            
        }
        public static void name()
        {
            final int i = 0;
          
        }
        class inner
        {
            public void print()
            {
                System.out.println("5");
            }
        }
    }
      

  2.   

    在方法体中定义的内部类最大的特点是只能访问方法中final类型的局部变量,出了这个方法体,这个inner类无法访问。可以在方法体内创建一个inner的对象,再调用print(),但这样就有点多此一举了。
      

  3.   

    只能在 name方法体里调用。public class Test5
    {
        public static void main(String[] args)
        {
            name();
        }
        public static void name()
        {
            final int i = 0;        class inner
            {
                public void print()
                {
                    System.out.println(i);
                }
            }
            new inner().print();
        }}
      

  4.   

    你没理解我的意思。我找到答案了。
    方法内部能定义类的
    方法内部类只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化。public class Test5
    {
    public static void main(String[] args)
    {

    Test5.name(); }
    public static void name()
    {
    final int i = 4; class inner
    { public void print()
    {
    System.out.println(i);
    } }
    inner sky=new inner();
        sky.print();
    }

    }
    /*interface Test{
    public abstract void  print();
    }*/