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
类的对象吗?如何?
答案 0 :(得分:3)
我可以从main方法创建我的类的对象吗?
没有。只有met
方法知道该类的任何内容。如果要在该方法之外使用该类,则应将其声明为Demo
中的嵌套类,或者作为完全独立的非嵌套类。
就个人而言,我会尽量避免使用嵌套类 - 它们有奇怪的限制,你可能经常最终忘记static
修饰符而最终创建内部类而不是嵌套类,并且它们是通常很痛苦。