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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.成员内部类;
        (1)成员内部类可以访问外部类的所有成员。
        (2)若内部类中存在与外部类同名的变量,则访问时遵循就近原则;
             此时若想强行访问外部类的变量,可以使用:
             “外部类名.this.变量名”进行访问,在此之前若有赋值操作
             则会得到赋值后的变量;但若使用:
             “new 外部类名().变量名”进行访问,得到的则是该变量本身。
        (3)在外部类中创建内部类对象的格式为:
                        内部类名 对象名 = new 内部类名();
                 在其他类中创建内部类对象的格式为:
                        外部类名.内部类名 对象名 = new 外部类名().new内部类名();

2.静态内部类;
        (1)静态内部类可以直接访问外部类的静态成员,创外部类对象访问其他成员;
        (2)可以在不创建外部类对象的情况下被实例化;
        (3)无法在静态内部类的静态方法中访问外部类或内部类的非静态成员,强行要
                访问可以先创建对象;
        (4)在外部类中创建静态内部类对象的格式为:
                        内部类名 对象名 = new 内部类名();
                 在其他类中创建内部类对象的格式为:
                        外部类名.内部类名 对象名 = new 外部类名.内部类名();

3.方法内部类;
        (1)可以访问外部类的成员
        (2)所调用的局部变量必须用final修饰
        (3)无法用static修饰;
        (4)只能在当前方法中被使用。

4.匿名内部类;
        (1)必须有父类或接口;
        (2)其实质是父类的子类或接口的实现类的对象,即多态;
        (3)格式是:
                        new 接口名或父类名() {
                                重写方法;
                        };

1 个回复

倒序浏览
干货啊。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马