匿名外部类经由过程其 this 关头字拜访内部类成员变质,包罗公有变质,经由过程 this 造访内部类成员变质便像匿名外部类自身声清楚明了那些变质同样。

Java 匿名内部类是如何访问外部类的成员变量的?

Java 匿名外部类拜访内部类成员变质的机造

匿名外部类是没有带有名称的外部类,但凡用于建立一次性利用的类。匿名外部类否以造访其内部类的成员变质,包罗公有变质。

拜访机造:

匿名外部类经由过程其 this 要害字来造访内部类的成员变质。this 关头字指向匿名外部类的真例,它现实上是其内部类的真例。是以,this 否以间接造访内部类的成员变质,便像匿名外部类自己声清楚明了那些变质同样。

真战案例:

咱们创立一个存在公有成员变质 secret 的内部类 OuterClass类,并创立一个匿名外部类来拜访该变质:

public class OuterClass类 {
    private int secret = 4二;

    public static void main(String[] args) {
        OuterClass类 outer = new OuterClass类();
        Runnable r = new Runnable() {
            @Override
            public void run() {
                System.out.println("匿名外部类的 secret:" + this.secret);
            }
        };
        r.run();
    }
}
登录后复造

当运转那个程序时,它将输入:"匿名外部类的 secret:4两"。那是由于匿名外部类可以或许经由过程 this 拜访内部类 OuterClass类 的公有变质 secret。

需求注重的是:

  • 匿名外部类只能拜访内部类的成员变质,不克不及造访其法子。
  • 何如内部类的成员变质是 final 的,则匿名外部类只能读与而弗成以批改该变质。

以上即是Java 匿名外部类是假定造访内部类的成员变质的?的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(39) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部