类内部方法

时间:2014-03-25 07:59:37

标签: java

public class Demo 
{

    public void met(Object d)
    {

        class my {
            public String Work(String s){
                return s+",JAVA";
            }
        }
        d=new my().Work("Hello");//statement 1
        System.out.println(d);//statement 2

    }

    public static void main(String args[])
    {
        new Demo().met(new Object());
    }

}

我不知道之前是否问过它。在此课程Demo中,我正在创建课程my

当我在课前把语句1和2放在它上面时会给我错误,但是当我在课后把它放好时就可以了。

所以这意味着当我调用方法时,会加载类并创建名为Demo$1my.class的类文件,这样如果我在课后放置语句1和2就可以了。是这样吗?

我的问题是我可以从main方法创建my类的对象吗?如何?

1 个答案:

答案 0 :(得分:3)

  

我可以从main方法创建我的类的对象吗?

没有。只有met方法知道该类的任何内容。如果要在该方法之外使用该类,则应将其声明为Demo中的嵌套类,或者作为完全独立的非嵌套类。

就个人而言,我会尽量避免使用嵌套类 - 它们有奇怪的限制,你可能经常最终忘记static修饰符而最终创建内部类而不是嵌套类,并且它们是通常很痛苦。