黑马程序员技术交流社区

标题: 报错提示:限定新的新静态类(代码见正文) [打印本页]

作者: 会说话的木头    时间: 2014-4-1 11:23
标题: 报错提示:限定新的新静态类(代码见正文)
  1. class OutClass
  2. {
  3. static class InnerClass
  4. {
  5. String s1 = "这是内部类的实例属性";
  6. InnerClass()
  7.         {
  8. System.out.println("创建内部类对象!");
  9.         }

  10. void innerTest()
  11.         {
  12. System.out.println("这是内部类的test方法!");
  13.         }
  14. }       

  15. void accessInner()
  16.         {
  17. System.out.println(new InnerClass().s1);

  18.         }
  19. }

  20. class InnerClassAccess
  21.         {
  22. public static void main(String[] args){
  23. OutClass oc = new OutClass();
  24. oc.new InnerClass().innerTest();

  25. }
  26. }
复制代码

作者: yanzhendong    时间: 2014-4-1 11:51
因为静态内部类不依赖于外部类,其并没有外部类的引用,因此不能通过外部类引用的方式来能new内部类的对象,可以直接new内部类对象,就像这样:outclass.innerclass in=new outclass.innerclass()
作者: ehuashao    时间: 2014-4-1 11:53
  1. class InnerClassAccess
  2.         {
  3. public static void main(String[] args){
  4. OutClass oc = new OutClass();
  5. new OutClass.InnerClass().innerTest();

  6. }
  7. }
复制代码


因为静态嵌套类和其他静态方法一样只能访问其它静态的成员,而不能访问实例成员。因此静态嵌套类和外部类(封装类)之间的联系就很少了,他们之间可能也就是命名空间上的一些关联。上面例子中你需要注意的就是静态嵌套类的声明方法 new OutClass.InnerClass().innerTest();连续写了两个类名。




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