我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合公式 > 方法内部类 >

java中 main()方法中为什么不能new 内部类

归档日期:04-13       文本归类:方法内部类      文章编辑:爱尚语录

  我想问一下,为什么在main()方法中不能直接new内部类,而要先new自己这个类,在.new内部类,而在这个类得其他方法中可以直接new内部类。好像是static的原因,谁能讲详细一点,我刚学...

  我想问一下,为什么在main()方法中不能直接new内部类,而要先new自己这个类,在.new内部类,而在这个类得其他方法中可以直接new内部类。好像是static的原因,谁能讲详细一点,我刚学

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  内部类是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,然后在前面加上外部类的类命和$符号;

  内部类不能用普通的方式访问,但是内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的。

  内部类分为成员内部类(1)、静态嵌套类(2)、方法内部类(3)、匿名内部类(4)。

  3.方法内部类只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化。

  在getIn()方法中虽然没有创建外部类的对象就实例化了内部类对象,仿佛违背了(A),但是如果不创建外部类对象也就不可能使用到getIn(),所以还是会先创建外部类对象。

  但是我们不能在一个静态方法里访问非静态成员和方法。但是我们可以在这个静态方法中实例化一个外部类对象,再用这个对象实例化外部类,这就是使用成员内部类的时候在static main中写的内容了。

  static在编译器执行之时,它将是独立的一块空间,可以理解它只是鸠占鹊巢的,所以不能单纯的理解为这个类中的main方法,所以还是需要在main中去创建外部的对象,再创建内部类。

  展开全部1.首先你的内部类不是静态的对吧(不是static class)。

  3.main 方法是个静态方法,而 静态 类不是个静态内部类,所以不能直接初始化。

  对main方法而言,虽然写在类中,它是游离于任何类之外的(就跟C++一样,单独一个main方法),因此某类的非静态内部类对它而言是不直接可见的,也就无法直接访问

本文链接:http://renfriends.com/fangfanabulei/27.html