A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  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. }
复制代码

2 个回复

倒序浏览
因为静态内部类不依赖于外部类,其并没有外部类的引用,因此不能通过外部类引用的方式来能new内部类的对象,可以直接new内部类对象,就像这样:outclass.innerclass in=new outclass.innerclass()
回复 使用道具 举报
  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();连续写了两个类名。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马