黑马程序员技术交流社区

标题: static内部类的问题 [打印本页]

作者: 蔡兆军    时间: 2012-11-24 16:09
标题: static内部类的问题
class Outer
{
private static  int x = 3;

static class Inner//静态内部类
{
  static void function()
  {
   System.out.println("innner :"+x);
  }
}
static class Inner2
{
  void show()
  {
   System.out.println("inner2 show");
  }
}
public static void method()
{
  Inner.function();
  new Inner2().show();//Inner2 是静态类,静态类不能被new,但是这行先new了一个Inner2在调用show。
}
}


作者: 梁枝武    时间: 2012-11-24 16:29
外部类访问静态内部类的静态方法可以直接用内部类名调用
外部类要调用静态内部类的非静态方法必须创建内部类对象

作者: 李光耀    时间: 2012-11-24 17:57
你想错了。静态类是可以被实例化的,也就是可以被new  (接口和抽象类才不可以被new)。
  
外部类和外部类以外的想要调用静态内部类中的非静态成员,就需要把静态内部类实例化才可以。
                                                                                        正确求表扬~~{:soso_e200:}
                                                                                                                                    错误求改正~~
作者: mickle_deng1    时间: 2012-11-24 22:36
1、静态类可以被实例化
2、类中的非静态成员,需要对象才能访问,所以要new 一个对象。所以调用非静态成员show() 只能用 new Inner2().show();
3、对于静态成员,则可以直接调用。
作者: 蔡兆军    时间: 2012-11-24 22:59
明白了!{:soso_e104:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2