黑马程序员技术交流社区

标题: 关于内部类的问题,求大神解答。 [打印本页]

作者: 苏乞儿    时间: 2014-10-11 10:46
标题: 关于内部类的问题,求大神解答。
  1. class Out{
  2.         int a=1;
  3.         public void method(){
  4.                 int a=2;
  5.                 System.out.println("外部类方法运行。");
  6.         }
  7.         class In{
  8.                 int a=3;
  9.                 public void method(){
  10.                         int a=4;
  11.                         System.out.println("内部类方法运行。。。"+Out.this.a);
  12.                 }
  13.         }
  14. }
  15. class OutIn{
  16.         public static void main(String[] args) {
  17.                
  18.                 Out.In in=new Out().new In();//前边的Out.In这时什么格式?我的内部类也没有用静态修饰啊??????
  19.                
  20.                 in.method();
  21.         }
  22. }
复制代码
如上,如果局部内部类加static修饰的话是 Out.In in=new Out.In();建立对象。但是现在没有用static修饰成员内部类,为什么还用Out.In in??????

作者: 面具猴    时间: 2014-10-11 10:56
Out.In是外部类引用内部类的格式,而不类引用静态变量的方式。此时你定义的内部类是一个类型,还不是一个成员变量,对象成员什么的。。。再者定义内部类也不能使用static关键字
作者: 苏乞儿    时间: 2014-10-11 20:36
面具猴 发表于 2014-10-11 10:56
Out.In是外部类引用内部类的格式,而不类引用静态变量的方式。此时你定义的内部类是一个类型,还不是一个成 ...

嗯,知道了,局部内部类是不能被static修饰的。。。那就是说外部类引用内部类的方式和外部类引用静态成员内部类的格式都是一样的了,都是Out.In ?




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