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

时间:2014-09-07 12:03:02

标签: java class oop methods inner-classes

Java中内部类的确切目的是什么,并在其中创建方法。如果我在类中创建方法而不是在Inner类中创建这些方法,我可以获得相同的行为吗?

我们可以访问Inner类方法以及外部类之外的实例方法。那么Java中内部类的确切目的是什么?没有内部阶级,我们是否有任何情况/可能性无法生存?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

如果将方法放在内部类中,则可以访问内部方法,实例变量!您无法访问外部类中的这些变量。

答案 2 :(得分:0)

您可以参考this

基本上内部类保持面向对象编程更加完整。 有时候当你必须实现一个只有一个未实现的方法的接口时,内部类很方便。特别是匿名的内部阶级。 我也可以使用这个内部类来进行回调,而不是编写复杂的if-else结构或switch case