内部类变量和外部类变量访问时,静态和非静态为什么访问外部静态变量不用加this

1、非静态变量和非静态内部类

        内部类变量和外部类变量同名,内部类方法访问外部变量

        public class Outer{

        int a= 10;//外部类变量

        public class Inner{

        int a = 20;//内部类变量

        //内部类方法

        public void test(){

            System.out.println("访问外部类变量a:"+Outer.this.a);

             System.out.println("访问内部类变量a:"+a);

}

}

}

2、静态变量和静态内部类

public class Outer{

        static int a= 10;//外部类变量

        public static class Inner{

        int a = 20;//内部类变量

        //内部类方法

        public void test(){

            System.out.println("访问外部类变量a:"+Outer.a);

             System.out.println("访问内部类变量a:"+a);

}

}

}


qq_蓝天白云_27
浏览 1256回答 3
3回答

望远

因为静态属性和静态方法都从属于类,是类属性,类方法,可以通过类名.的方式来直接访问。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java