 
		PG_one
2017-10-10 22:47
静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问
 
				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();
    }
}
 
				其实很简单的道理,就是static这个关键字的用法。
public static class ,不能访问 public class。但如果非要访问的话,就通过创建新的对象来引用进行操作。
内部类 对象名 = new 内部类();//这里创建了外部类的对象,就可以进行访问了。
Java入门第二季
531292 学习 · 6327 问题
相似问题