问答详情
源自:7-7 Java 中的静态内部类

这个语法我没看懂 能通过代码呈现出来么

 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 

提问者:PG_one 2017-10-10 22:47

个回答

  • qq_新一_0
    2017-12-15 11:56:32

    package imooc_2.encapsulation.lnnerclass;


    public class StaticInnerClass {
       private static int Score=84;
       private  int Age=20;
       //静态内部类
       public static class Inner{
           private int sum=10;
           int a=21;
           public void show(){
               StaticInnerClass staticInnerClass=new StaticInnerClass();
               System.out.println("静态内部类调用外部类的静态成员变量"+Score);
               System.out.println("静态内部类调用外类的成员变量"+new StaticInnerClass().Age);
               System.out.println("静态内部类调用外类的成员变量"+staticInnerClass.Age);
               System.out.println("静态内部类调用内部类中的静态成员变量"+sum);
               System.out.println("静态内部类调用内部类中的成员变量"+a);
           }
       }
       public static void main(String[] args) {
           Inner inner=new Inner();//静态内部类能直接创建
           inner.show();
       }
    }

  • Alan_walk
    2017-10-10 23:06:07

    其实很简单的道理,就是static这个关键字的用法。

    public static class ,不能访问 public class。但如果非要访问的话,就通过创建新的对象来引用进行操作。

    内部类 对象名 = new 内部类();//这里创建了外部类的对象,就可以进行访问了。