首页 > 基础资料 博客日记

Java-成员内部类 匿名内部类

2023-07-24 17:06:05基础资料围观191

Java资料网推荐Java-成员内部类 匿名内部类这篇文章给大家,欢迎收藏Java资料网享受知识的乐趣

1)成员内部类: 应用率不高
1.1)类中套类,外面的称为外部类,里面的称为内部类
1.2)内部类通常只服务于外部类,对外不具备可见性
1.3)内部类对象通常在外部类中创建
1.4)内部类中可以直接访问外部类的成员(包括私有的)
内部类中有一个隐式的引用,指向了创建它的外部类对象
---外部类名.this

public class InnerClassDemo {
    public static void main(String[] args) {
        Mama m = new Mama();
        //Baby b = new Baby(); //编译错误,内部类对外不具备可见性
    }
}

class Mama { //外部类
    private String name;

    void create() {
        Baby b = new Baby();
    }

    class Baby { //内部类
        void showName() {
            System.out.println(name); //简便写法
            System.out.println(Mama.this.name); //完整写法
            //System.out.println(this.name); //编译错误,this指代当前Baby对象
        }
    }
}

2)匿名内部类:----------大大简化代码的操作
2.1)若想创建一个类(派生类)的对象,并且对象只被创建一次,
此时可以设计为匿名内部类
2.2)在匿名内部类中不能修饰外面局部变量的值,
因为该变量在此处会默认为final的----------记住它(传奇才师那用)
2.3)问:内部类有独立的.class吗?
答:有

public class NstInnerClassDemo {
    public static void main(String[] args) {
        //1)系统自动创建了Aoo的一个派生类,但是没有名字
        //2)为该派生类创建了一个对象,名为o1
        //      new Aoo(){}是在创建Aoo的派生类的对象
        //3)大括号中的为派生类的类体
        Aoo o1 = new Aoo() {};

        //1)系统自动创建了Aoo的一个派生类,但是没有名字
        //2)为该派生类创建了一个对象,名为o2
        //3)大括号中的为派生类的类体
        Aoo o2 = new Aoo() {};
        //1)系统自动创建了Boo的一个派生类,但是没有名字
        //2)为该派生类创建了一个对象,名为o3
        //3)大括号中的为派生类的类体
        Boo o3 = new Boo() {
            void show() {
                System.out.println("show");
            }
        };
        o3.show();
        int num = 5;
        num = 55;
        Boo o4 = new Boo() {
            void show() {
                System.out.println("show");
                //num = 66; //编译错误,匿名内部类中不能修改外面局部变量的值,
                //因为在此处该变量会默认为final的
            }
        };

    }
}

abstract class Boo {
    abstract void show();
}

abstract class Aoo {
}

文章来源:https://www.cnblogs.com/burberry/p/16491754.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云