Java中内部类方法与实例方法的区别



Java中内部类和在其中创建方法的确切目的是什么。如果我在类中创建方法,而不是在内部类中创建这些方法,我能得到同样的行为吗?

我们既可以访问内部类方法,也可以访问外部类之外的实例方法。那么,Java中Inner类的确切用途是什么呢?有没有什么情况/可能性,没有内部阶级,我们就无法生存?

使用它们在很大程度上取决于您需要做什么。有时您需要一个只在一个特定类内部使用的类,有时您需要快速创建Comparator的实例并将其传递给sort()方法(匿名内部类)。有些内部类可以在类之外访问,有些则不能。java中有四种不同类型的嵌套类,我建议阅读以下内容:http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

内部类不会在外部类实例化时进行实例化,除非您在构造函数中显式执行。因此,它的方法对类的其他部分没有用处,除非它们是static,或者您已经创建了它的实例并使用了它们。

如果您将方法放在内部类中,则它们可以访问内部方法实例变量!不能访问外部类中的那些变量。

您可以参考此

基本上,内部类保持了面向对象编程的完整性。有时,当您必须实现一个只有一个未实现方法的接口时,内部类也会派上用场。特别是匿名的内部类。此外,我们可以使用这个内部类来回调

,而不是编写复杂的if-else结构或切换用例

最新更新