静态内部类和非静态内部类的区别?

时间:01-20人气:13作者:莫浅忆素颜

静态内部类属于外部类本身,而非静态内部类属于外部类的实例。静态内部类可以直接访问外部类的静态成员,非静态内部类可以直接访问外部类的所有成员。静态内部类不需要依赖外部类实例,非静态内部类必须在外部类实例存在时才能创建。

区别

静态内部类:它是外部类的独立部分,不持有外部类的引用。创建静态内部类对象时,不需要先创建外部类对象。它只能访问外部类的静态变量和方法,适合与外部类逻辑关联但不需要访问实例数据的场景。比如工具类或辅助类。

非静态内部类:它是外部类实例的成员,隐式持有外部类的引用。创建非静态内部类对象时,必须先有外部类对象。它可以自由访问外部类的所有成员,包括私有成员,适合需要紧密耦合外部类实例状态的场景。比如事件处理器或适配器。

注意:本站部分文字内容、图片由网友投稿,如侵权请联系删除,联系邮箱:happy56812@qq.com

相关文章
本类推荐
本类排行