在面向对象的计算机程序设计中,匿名内部类是在方法内部声明但未命名的类。匿名内部类有几个限制,使其与普通类不同,包括对它可以访问的变量范围的限制。在某些非常特殊的情况下,使用匿名内部类可以使源代码更具可读性,但它...
在面向对象的计算机程序设计中,匿名内部类是在方法内部声明但未命名的类。匿名内部类有几个限制,使其与普通类不同,包括对它可以访问的变量范围的限制。在某些非常特殊的情况下,使用匿名内部类可以使源代码更具可读性,但它主要用于帮助强制执行封装,因为生成单独的类可能会使封装复杂化匿名内部类是在方法内部声明但未命名的类。封装是面向对象编程(OOP)中的概念,即对象及其组件应以某种方式受到保护并绑定到对象上。匿名内部类和内部类通常有助于实现对复杂的对象。不必创建一个依赖于独立的外部对象的类,将它们人为地绑定在一起并可能暴露某些组件,而匿名的内部类可以将两者紧密地联系在一起。在某些编程语言中,匿名内部类可以帮助克服单一继承的限制。如果一个对象从一个类继承,但随后又需要访问另一个类,可以动态生成内部类,然后将其传递给相应的处理程序。这种技术在回调和事件侦听器中很常见。唯一的选择是创建一个完整的第二个类,其中只有一个或两个方法被重写。匿名内部类有一些限制以防止中断主要限制是匿名内部类不能访问其所在方法的变量,除非这些变量声明为final这是因为内部类可能会在其嵌套的类和方法的生命周期之外继续运行。包装类的变量将在其生命周期结束后被销毁,因此内部类所持有的引用将立即无效。唯一的例外是final变量,因为它将在以后存在实例。匿名内部类的一个更具体的用途是代码保护。许多OOP语言都提供了一种称为反射的机制。反射允许程序分析另一个类并查看其成员变量和方法,而不是代码本身。通过使用匿名内部类,内部类的内容被保护不被反射,并且大类的内部工作可以被有效地隐藏
-
发表于 2020-08-07 07:14
- 阅读 ( 693 )
- 分类:电脑网络